PHP: отображать записи из базы данных группами по пять?

Возможно ли, и если да, как я могу это сделать, чтобы выбрать все записи в таблице в моей базе данных, а затем отобразить пять результатов в то время в одной группе.

Значение: пример: у меня всего 15 записей в моей базе данных, тогда я хочу представить свои данные следующим образом:

<div class="1-5">Record[1], Record[2], Record[3], Record[4], Record[5]</div> <div class="6-10">Record[6], Record[7], Record[8], Record[9], Record[10]</div> <div class="11-15">Record[11], Record[12], Record[13], Record[14], Record[15]</div> 

Я не совсем уверен, могу ли я сделать это с помощью оператора SQL, или мне нужно написать какой-то «do … while» или loop для получения каждого набора данных. Я также думал о чем-то с массивами, но не получил результата.

благодаря

  • Mestika

Solutions Collecting From Web of "PHP: отображать записи из базы данных группами по пять?"

Я считаю array_chunk() очень полезным для такого рода вещей.

 // pull all the records into an array $query = mysql_query('SELECT * FROM mytable'); $rows = array(); while ($row = mysql_fetch_array($query)) { $rows[] = $row; } // this turns an array into an array of arrays where each sub-array is // 5 entries from the original $groups = array_chunk($rows, 5); // process each group one after the other $start = 1; foreach ($groups as $group) { $end = $start + 4; // $group is a group of 5 rows. process as required $content = implode(', ', $group); echo <<<END <div class="$start-$end">$content</div> END; $start += 5; } 

Конечно, вы можете сделать это, не прочитав их все в первую очередь, но если вы все равно их прочтете, это не имеет большого значения, и вышеупомянутая версия, вероятно, будет гораздо более понятной, чем реализация соответствующих условий (-ов) когда вы читаете строки из БД.

Dunno, если я правильно понимаю вопрос, но если вы хотите сгруппировать весь результат в группах по 5:

 $i =1; while ($row = mysql_fetch_array($query)) { echo $row['name']."\n"; if ($i % 5 == 0) { echo 'hr'; // Or any other separator you want } $i++; }