我正在尝试通过php在HTML表中显示mySQL数据。第一行显示正确,但是其他行集并未在我的表中进行组织和显示,而只是在容器底部无结构地回显。
我认为由于正在显示数据(尽管不在表中),所以我的查询是正确的,只是不确定如何进行。
这是我的表结构问题吗?
我尝试添加第二个:
echo '<td>' . $data['studentNumber'] . '</td><td>' . $data['handle'] . '</td><td>' . $data['email'] . '</td>';
在我的第一个回声之下,但它只是复制了所有内容。
这里是有问题的整个代码:Screenshot Here
<div class="container-fluid">
<div class="row">
<div class="col-md details">
<p class="details_title"></p>
<?php
$getAllStudentsTable = "SELECT * FROM users WHERE accessLevel = 3";
$result = (mysqli_query($conn, $getAllStudentsTable));
echo '<table class="table">
<thead class="thead-dark">';
echo' <tr>
<th scope="col">Student Number</th>
<th scope="col">Handle</th>
<th scope="col">Email Address</th>
</tr>
</thead>'; //table headers
while ($data = mysqli_fetch_array($result)) {
echo' <tbody> <tr>';
echo '<td>' . $data['studentNumber'] . '</td><td>' . $data['handle'] . '</td><td>' . $data['email'] . '</td>';
echo'</tr> </tbody> </table>';
}
?>
有人可以为此指出正确的方向吗?
(我对PHP,SO还是比较陌生,这是有史以来第一次尝试将数据库数据显示到HTML表中的尝试。)
我已经附上了该问题的屏幕快照的链接(尚未发布图片,哈哈)。
谢谢!
答案 0 :(得分:1)
您将在循环中回显大多数表结构,而您应该在其中回显行。作为必要的调试步骤,请在浏览器中查看“查看源代码”,并查看表结构是什么。您会发现多个<tbody>
元素和多个结束</table>
标签,使浏览器感到困惑。
基本上,从循环中删除各种<tbody>
和<table>
标签,然后在循环中回显它们。像这样:
echo '<tbody>';
while ($data = mysqli_fetch_array($result)) {
echo '<tr>';
echo '<td>' . $data['studentNumber'] . '</td><td>' . $data['handle'] . '</td><td>' . $data['email'] . '</td>';
echo '</tr>';
}
echo '</tbody></table>';
您需要在循环中重复的是每个<tr>
元素及其子元素。