2011-01-15 4 views
0

年に基づいてアイテムをまとめてグループ化したい。私がPHPとMySQLを使用してこれを行うだろうか列から一意の値を取得し、別の列の値をグループ化するにはどうすればよいですか?

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

のようにテーブルに表示されますか?

+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>" 
関連する問題