PHP Mysql-запрос к HTML-таблице только вставляет в первую строку таблицы

Я пытаюсь распечатать все свои данные в HTML-таблицу, которая работает, но только для первой строки таблицы.

Мой код PHP:

    $data = "";
while ($row = mysqli_fetch_assoc($result)) {
$data = "<tr>
<td>" . $row['name'] . "</td>
<td>" . $row['email'] . "</td>
<td>" . $row['message'] . "</td>
<td>" . $row['created'] . "</td>
</tr>";
}

Мой HTML-код:

<!DOCTYPE html>
<html>
<body>

<table border="1">
<tr>
<th width="15%">Name</th>
<th width="15%">Email</th>
<th width="50%">Message</th>
<th width="20%">Created</th>
</tr>
<?= $data ?>
</table>

</body>
</html>

Как сделать так, чтобы в таблицу автоматически вставлялось больше строк и данных MySQL?

Оба эти кода находятся в 1 php файле.

0

Решение

Мне кажется, что вы сбрасываете $ data в последнюю строку для каждой итерации цикла while, вместо того, чтобы добавлять новый html и данные в эту переменную. Вместо этого используйте:

$data .= "<tr..."
1

Другие решения

$data = "<tr>
<td>" . $row['name'] . "</td>
<td>" . $row['email'] . "</td>
<td>" . $row['message'] . "</td>
<td>" . $row['created'] . "</td>
</tr>";

становится

$data .= "<tr>
<td>" . $row['name'] . "</td>
<td>" . $row['email'] . "</td>
<td>" . $row['message'] . "</td>
<td>" . $row['created'] . "</td>
</tr>";
1

Вместо

$data = "<tr>

использование

$data.= "<tr>

что означает, что вы добавляете все tr в цикле

0
По вопросам рекламы [email protected]