JSON 格式转 HTML 表格
Posted
技术标签:
【中文标题】JSON 格式转 HTML 表格【英文标题】:JSON format to HTML Table 【发布时间】:2017-12-02 01:56:47 【问题描述】:我有一段代码可以读取 SQL 数据并将其转换为 JSON 格式
$sql = "SELECT students.studentnumber, students.firstname, students.lastname, badge_id FROM students
INNER JOIN student_has_badge
WHERE student_has_badge.badge_id = 10
AND student.studentnumber = student_has_badge.studentnumber
ORDER BY lastname ASC
LIMIT 50;";
$result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection));
//creating an array
$emparray = array();
while ($row = mysqli_fetch_assoc($result))
$emparray[] = $row;
echo json_encode($emparray);
mysqli_close($connection);
我从中得到的输出如下所示:
["studentnumber":"11111","firstname":"John","lastname":"Smith","badge_id":"10",
"studentnumber":"1","firstname":"Nick","lastname":"Smith","badge_id":"10",
"studentnumber":"500740442","firstname":"Jason","lastname":"Baker","badge_id":"10",
"studentnumber":"00000","firstname":"Tim","lastname":"Smith","badge_id":"10"]
现在我想将这些数据放在 html 表格中,我尝试了各种方法,但都没有奏效,有人能指出我正确的方向吗?
【问题讨论】:
请解释为什么你不只是修改你的while
循环并让它生成HTML表格,而不是生成一个数组然后转换为JSON?
【参考方案1】:
<?php
$emparray ='["studentnumber":"11111","firstname":"John","lastname":"Smith","badge_id":"10","studentnumber":"1","firstname":"Nick","lastname":"Smith","badge_id":"10","studentnumber":"500740442","firstname":"Jason","lastname":"Baker","badge_id":"10","studentnumber":"00000","firstname":"Tim","lastname":"Smith","badge_id":"10"]';
$emparray = json_decode($emparray,1);
echo '<table border="1"><tr><th>Student#<th>First name</th><th>lastname</th><th>badge id</th></tr>';
foreach($emparray as $key => $value)
echo '<tr><td>'.$value['studentnumber'] . '</td><td>'.$value['firstname'] . '</td><td>'.$value['lastname'] . '</td><td>'.$value['badge_id'] .'</td></tr>';
echo '</table>';
?>
【讨论】:
虽然代码看起来正确,但仅代码的答案并不是很有用。我发现有很多 cmets (// decode the JSON into an array so we can loop over it...
) 的代码更有用。
@cale_b 我会在下一个回答时考虑到这一点,谢谢。
为什么不考虑关于这个答案,并编辑答案以改进它?【参考方案2】:
如果你想要一个 PHP 解决方案,那么你不需要 JSON 数据,只需从原始数组创建一个表。
<?php
echo '<table id="emparray"><tr>'
.'<th class="studentnumber">Student Number</th>'
.'<th class="firstname">First name</th>'
.'<th class="lastname">Last name</th>'
.'<th class="badge_id">Badge ID</th>'
.'</tr>';
foreach ($emparray as $e)
echo '<tr><td class="studentnumber">'.$e['studentnumber'].'</td>'
.'<td class="firstname">'.$e['firstname'].'</td>'
.'<td class="lastname">'.$e['lastname'].'</td>'
.'<td class="badge_id">'.$e['badge_id'].'</td></tr>';
echo '</table>';
?>
【讨论】:
您好,感谢您的回复。我刚试过这个,但我只是从中得到纯文本,没有表格或其他任何东西 @Maarten - 此代码工作正常。你错过了一些关于你是如何实现它的。 @Maarten 也许您的 SQL 没有返回值。您似乎在INNER JOIN
中遗漏了ON
子句。还要确保您将代码粘贴到 PHP 标记中(如果您只是看到纯文本,您可能错误地将其粘贴到 HTML 模式)。以上是关于JSON 格式转 HTML 表格的主要内容,如果未能解决你的问题,请参考以下文章