Строки базы данных не отображаются полностью в таблице HTML

0

Я пытаюсь отобразить данные 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).

Спасибо!

Теги:

1 ответ

0

Вы повторяете большую часть структуры таблицы в своем цикле, где вы должны просто повторять строки. В качестве необходимого шага отладки взгляните на 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> и его дочерние элементы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню