Цикл
a for
или цикл foreach
будут работать нормально, но кодирование будет намного меньше, если вы просто создадите один цикл for и поместите содержимое в массив массивов или массив строк ...затем вы можете делать с фактическим содержимым все, что захотите (при условии, что мы группируем по столбцу category
. Я буду использовать пример, в котором используется массив строк (и запрос, на который я ссылаюсь, объясняется здесь: http://explainextended.com/2009/03/06/advanced-row-sampling/)
$query = mysql_query([QUERY THAT GETS ALL ITEMS, BUT LIMITS BY EACH CATEGORY]) or die(mysql_error());
$all_items = array();
while($row=mysql_fetch_array($query)){
if (!isset($all_items[$row['category']])){ //if it isn't created yet, make it an empty string
$all_items[$row['category']] = "";
}
$all_items[$row['category']] .= "<li><a href='".$row['url']."'>".$row['title]."</a></li>"; //concatinate the new item to this list
}
Теперь у нас есть массив, в котором блок HTML для каждого раздела хранится в массиве с именем категории. Чтобы вывести каждый блок, просто:
echo $all_items['category name'];