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

时间:2012-04-03 00:19:30

标签: php mysql json

我有一个用PHP构建的表单,并在用户在MySQL数据库中提交时存储表单字段值。表格非常长,可能会定期更改。所以我使用json_encode功能将所有表单值存储到数据库中。现在我需要将该信息从数据库中提取出来并以键/值关系打印出来。

例如,在数据库中,这里是名为“json_payload”的行,其中包含以下格式的一些示例值:

{"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>

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

JSON通常用于Javascript / AJAX;在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>';