Я пытаюсь распечатать все свои данные в 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 файле.
Мне кажется, что вы сбрасываете $ data в последнюю строку для каждой итерации цикла while, вместо того, чтобы добавлять новый html и данные в эту переменную. Вместо этого используйте:
$data .= "<tr..."
$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>";
Вместо
$data = "<tr>
использование
$data.= "<tr>
что означает, что вы добавляете все tr в цикле