#php #html #mysqli
#php #HTML #mysqli
Вопрос:
Я пытаюсь отобразить данные таблицы SQL с помощью PHP, прямо сейчас я создал таблицу HTML, которая бесконечно повторяется до конца страницы. Теперь я хочу попробовать отобразить 10 ~ имен по вертикали, прежде чем запускать новую таблицу HTML рядом с ней, которая продолжает цикл, пока не отобразится вся таблица SQL. Сценарий, который у меня есть прямо сейчас, выглядит следующим образом.
$result = mysqli_query($conn, "SELECT name, id FROM table ORDER BY name");
while($row = mysqli_fetch_array($result)){
echo "<table>
<tr><td><input type="submit" name="select" value="" . $row['name'] . ""></input></td></tr>
</table>" ;
}
Комментарии:
1. Вы создаете переменную
$counter
и обновляете ее внутри цикла while. Когда вы насчитали число, кратное 10 строкам, вы закрываете таблицу, открываете новую и повторяете.
Ответ №1:
если я правильно понял, вы хотите иметь таблицу для каждых 10 строк, если это так, вы можете сделать это следующим образом :
$result = mysqli_query($conn, "SELECT name, id FROM table ORDER BY name");
$i = 1;
while ($row = mysqli_fetch_array($result)) {
if ($i == 1) {
print "<table>";
} elseif ($i == 10) {
print " </table><table>";
$i = 1;
}
echo "
<tr><td><input type="submit" name="select" value="" . $row['name'] . ""></input></td></tr>
";
$i ;
}
Комментарии:
1. Спасибо, это сработало, теперь мне интересно, почему $row [‘name’] возвращает «name 1 amp; name 2 … «, в то время как когда я пытался дважды напечатать $row [‘name’], и он возвращал только «name 1 amp; name 1»
2. в коде, на который вы ссылались, печать строки [name] происходит каждый раз, когда mysql_fetch_array возвращает массив результата, и создается переменная $row . возможно, раньше код был другим или какие-то другие проблемы…
Ответ №2:
Вы можете просто извлечь все строки в таблицу, а затем разделить ее на куски по 10.
$result = mysqli_query($conn, "SELECT name, id FROM table ORDER BY name");
$data = $result->fetch_all(MYSQLI_ASSOC);
foreach (array_chunk($data, 10) as $table) {
echo "<table>";
foreach ($table as $row) {
echo "<tr><td><input type="submit" name="select" value="" . $row['name'] . ""></input></td></tr>";
}
echo "</table>";
}