Я хочу группировать элементы вместе в зависимости от года. Он будет отображаться в таблице типа
2010 -item 1 -item 2 -item 3 2009 -item 4 -item 5 -item 6
Как мне это сделать, используя php и mysql?
вы можете поместить каждую строку базы данных в ассоциативный массив с годом в качестве ключа, а затем перебрать массив для создания списка
$yearItems = array(); while ($row = mysql_fetch_assoc($result)) { $yearItems[$row['year']][] = $row; } foreach($yearItems as $year=>$items) { echo $year; echo "<ul>"; foreach($items as $item) { echo "<li>$item</li>"; } echo "</ul>"; }
SELECT year(datefield) as year, name_of_item FROM yourtable ORDER BY year, name_of_item
будет основной структурой запросов, тогда
$first = true; $previous_year = null; echo "<ul>"; while($row = mysql_fetch(...)) { if ($previous_year != $row['year']) { ... got a new year, start a new list if (!$first) { echo "</ul>"; } $first = false $previous_year = $row['year'] } echo "<li>", $row['name_of_item'], "</li>" } echo "</ul>"