如何在数据库中循环使用JSON编码的信息并打印出来


How to loop through JSON encoded info in a database and print out

我有一个用PHP构建的表单,并在用户提交时将表单字段值存储在MySQL数据库中。表格非常长,可能会周期性地变化。因此,我使用json_encode功能将所有表单值存储到数据库中。现在我需要从数据库中提取这些信息,并将其打印到键/值关系中。

例如,在数据库中,这是一个名为"json_epayload"的行,其中包含以下格式的示例值:

{"last_name":"Smith","first_name":"John","middle_name":"Doe"..."phone_number":"111.222.3333"}

我需要弄清楚如何在数据库中循环浏览这一行,并以表格格式打印出与PHP的所有键/值关系,这样上面的例子就会变成这样:

<table>
<tr>
<td>Last Name</td>
<td>Smith</td>
</tr>
<tr>
<td>First Name</td>
<td>John</td>
</tr>
<tr>
<td>Middle Name</td>
<td>Doe</td>
</tr>
...
<tr>
<td>Phone Number</td>
<td>111.222.3333</td>
</tr>
</table>

JSON通常用于Javascript/AAJAX;在PHP中,最好使用serialize()和unserialize(。但是JSON仍然可以工作;只需使用json_decode()进行解码,然后循环遍历数组,输出您的标记:

$json_array = json_decode($json_string, true); // decode as array rather than object
echo '<table>';
foreach($json_array as $key => $value)
{
    echo '<tr>';
    echo '<td>'.ucfirst(str_replace('_', ' ', $key)).'</td>';
    echo '<td>'.$value.'</td>';
    echo '</tr>';
}
echo '</table>';

当您必须使用PHP解析信息时,为什么要以JSON格式存储信息?

您可以使用json_decode并像PHP中的关联数组一样访问值,但我可能会更改存储信息的方式。