#php #html
#php #HTML
Вопрос:
Я довольно новичок в php. У меня есть несколько элементов в таблице базы данных, и я хотел бы отобразить их в 5 неупорядоченных списках одинаковой длины.
Например:
<ul>
<li>row 1</li>
<li>row 2</li>
<li>row 3</li>
</ul>
<ul>
<li>row 4</li>
<li>row 5</li>
<li>row 6</li>
</ul>
<ul>
<li>row 7</li>
<li>row 8</li>
<li>row 9</li>
</ul>
<ul>
<li>row 10</li>
<li>row 11</li>
<li>row 12</li>
</ul>
<ul>
<li>row 13</li>
<li>row 14</li>
<li>row 15</li>
</ul>
Я огляделся, но не нашел ответа самостоятельно. Я знаю, как получить строки из базы данных, но у меня есть ментальный блок о том, как разделить результаты на 5 групп.
Любая помощь будет высоко оценена.
Комментарии:
1. Dont! Сделайте разделение в коде PHP, это просто
2. Кроме того, что произойдет, если вы получите 30 результатов от вашего запроса, что вы будете делать тогда? 6 элементов в группе? Или 15 групп по 3
3. На самом деле это не вопрос mysql, а вопрос php / html, поскольку вы хотите, чтобы результаты запроса mysql отображались определенным образом.
4. Один из самых важных навыков, которым нужно научиться в программировании, — это разбить вашу проблему. Коду, который делит список на 5 равных частей, не нужно ничего знать о том, откуда взялся этот список.
Ответ №1:
Я понял это. Вот код, который дает результаты, которые я искал:
$query = $con->prepare("SELECT * FROM itemTable");
$query->execute();
while($row = $query->fetch(PDO::FETCH_ASSOC)){
$rows[] = $row;
}
$lists = array_chunk($rows, ceil(count($rows)/5)));
foreach ($lists as $column) {
echo '<ul>';
foreach ($column as $item) {
$filename = $item['file_name'];
echo '<li>'.$filename.'</li>';
}
echo '</ul>';
}
Спасибо, что отвлекли меня от mysql.