首页 > 解决方案 > 在 MYSQL 列中拆分值并在 PHP 页面中显示

问题描述

我有一个 MYSQL 数据库,其列中的字符串值由逗号分隔

"gpslev":"19","gsmlev":"2","io1":"1","io104":"520","io113":"-21760"

我想在 PHP 页面上显示信息,我可以使用第一部分作为标识符和第二部分作为信息来回显信息

例如 gpslev(标识符)19(要显示的信息)

<?php
                            $host="localhost"; // Host name
                            $username="root"; // Mysql username
                            $password="****@"; // Mysql password
                            $db_name="****"; // Database name
                            // Connect to server and select database.
                            mysql_connect("$host", "$username", "$password")or die("cannot connect");
                            mysql_select_db("$db_name")or die("cannot select DB");
                            $result = mysql_query("SELECT * FROM fleet WHERE sla_client = '$slcustom1' ORDER BY reg");
                            ?>
                            <?php
                            while($rows=mysql_fetch_array($result)){
                                ?>
                                <tr>
                                    <td class="center"><?php echo $rows['gpslev']; ?>/td> **In this row I need to show GPSLEV value**
                            <?php } ?>

此行中的数据字符串由跟踪设备发送到我的数据库,因此我需要将信息拆分为可以回显接收到的信息/值的值。

由于字符串有大约 30 - 40 个值,我想根据标识符选择值

io1 或 io113 每个都有不同的值,我想在字段或表中显示

标签: phpmysql

解决方案


您可以创建一个函数来返回array填充为$array['gpslev'] = "19";

function populateArrayFromString($string)
{
    $array = [];
    $pairs = explode(",", $string);
    foreach($pairs as $pair) {
        list($key, $value) = explode(":", $pair);
        $arrayToReturn[trim($key, '"')] = trim($value, '"');
    }

    return $array;
}

现在您可以在循环中使用它:

<?php

function populateArrayFromString($string)
{
    $array = [];
    $pairs = explode(",", $string);
    foreach ($pairs as $pair) {
        list($key, $value) = explode(":", $pair);
        $arrayToReturn[trim($key, '"')] = trim($value, '"');
    }

    return $array;
}

$host = "localhost"; // Host name
$username = "root"; // Mysql username
$password = "****@"; // Mysql password
$db_name = "****"; // Database name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");
$result = mysql_query("SELECT * FROM fleet WHERE sla_client = '$slcustom1' ORDER BY reg");
?>
<?php
while ($row = mysql_fetch_array($result)) {
    $data = populateArrayFromString($row['string_column_name']);
?>
    <tr>
        <td class="center"><?php echo $data['gpslev']; ?></td> **In this row I need to show GPSLEV value**
    <?php } ?>

推荐阅读