Как бы я написал запрос mysql, который можно разделить на 5 html-списков одинаковой длины

#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.