Я пытаюсь отобразить данные MySQL в таблице HTML через php. Первая строка отображается правильно, однако другие наборы строк не организованы и не отображаются в моей таблице, а просто отражаются в нижней части контейнера без структуры.
Я думаю, что, поскольку данные отображаются, хотя и не в таблице, мой запрос верен, я просто не уверен, как поступить.
Это проблема с моей структурой таблицы?
Я попытался добавить секунду:
echo '<td>' . $data['studentNumber'] . '</td><td>' . $data['handle'] . '</td><td>' . $data['email'] . '</td>';
под моим первым эхом, но оно просто дублировало все.
Вот весь код в вопросе: Скриншот здесь
<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.)
Я приложил ссылку для скриншота вопроса (пока не разрешено публиковать фотографии LOL).
Спасибо!
Вы повторяете большую часть структуры таблицы в своем цикле, где вы должны просто повторять строки. В качестве необходимого шага отладки взгляните на View Source в вашем браузере и посмотрите, какова структура таблицы. Вы найдете несколько элементов <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>
и его дочерние элементы.