Почему при выводе таблицы MYSQL правильно отображается только одна строка? - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь выгрузить свою таблицу MYSQL через PHP на мою HTML-страницу, и у меня возникли некоторые проблемы, с которыми я столкнулся.

В настоящее время у меня есть (Использование Bootstrap 4):

require('db.php');
$sql = "SELECT * FROM `users`;";
$table = "";
$result = mysqli_query($connection, $sql) or die(mysql_error());

$table = "<table class='table table-hover table-dark'>";
$table .= "<thread>";
$table .= "<tr>";
$fieldsInfo = $result->fetch_fields();

foreach($fieldsInfo as $fieldinfo)
    $table .= "<th scope='col'>{$fieldinfo->name}</th>";
$table .= "</tr>";
$table .= "</thead>";
$table .= "<tbody>";


while ($row = $result->fetch_assoc()) {
    $table .= "<tr>";

    foreach ($row as $columnValue) {
        $table .= "<td>$columnValue</td>";

    }
    $table .= "</tr>";
    $table .= "</tbody>";
    $table .= "</table>";
}
echo $table;
?>

И мой результат выглядит так: Отображение таблицы

Я полагаю, что именно там я размещаю значения <tr> и </tr> в моем коде,но я пытался разместить их как внутри, так и снаружи моих петель.При размещении внутри цикла моя таблица возвращает все значения моего столбца в заголовок первой таблицы.Далее я проверил свой код через Firefox 'inspect element' и увидел, что вторая строка таблицы фактически выходит за рамки <table>, что для меня не имеет смысла, потому что мой цикл, очевидно, до того, как я использую </table>.

Надеюсь, кто-то может пролить свет на это для меня, я только начинаю использовать PHP, поэтому я не очень хорош в этом;но я хочу учиться.

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Ваши теги <tr> и </tr> выглядят хорошо там, где они есть.Проблема в том, что закрывающие теги </tbody> и </table> находятся внутри цикла while.Переместите их вниз, и это должно выйти прямо.

while ($row = $result->fetch_assoc()) {
    $table .= "<tr>";

    foreach ($row as $columnValue) {
        $table .= "<td>$columnValue</td>";

    }
    $table .= "</tr>";
}
$table .= "</tbody>";
$table .= "</table>";
echo $table;
0 голосов
/ 15 мая 2018

Используйте этот код:

while ($row = $result->fetch_assoc()) {
    $table .= "<tr>";
    foreach ($row as $columnValue) {
        $table .= "<td>$columnValue</td>";
    }
    $table .= "</tr>";

}
$table .= "</tbody>";
$table .= "</table>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...