2011-01-15 4 views
0

Я хочу объединить элементы вместе в зависимости от года. Он будет отображаться в таблице какКак получить уникальные значения из столбца и группировать их со значениями из другого столбца?

2010 
    -item 1 
    -item 2 
    -item 3 
2009 
    -item 4 
    -item 5 
    -item 6 

Как бы я сделать это с помощью PHP и MySQL?

+0

Ваш вопрос настолько широк, что я не уверен, сколько деталей вам нужно в ответе. Можете ли вы быть более конкретным? –

ответ

1

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

$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>"; 
    } 
1
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>" 
Смежные вопросы