ニュースシステムのナビゲーションを改訂しており、最小限のMySQLクエリを使用したいと考えています。私はそれを1つのクエリにすべてダウンさせることができましたが、何かが間違っているようです。どんな助けでも大歓迎です。私は非常に近いですPHPで階層的にソートされたMySQL出力
2012
--04 (3)
--02 (1)
--01 (1)
2011
--12 (3)
--11 (2)
--10 (3)
--09 (1)
--07 (1)
--02 (1)
:私が達成したい何
は(文字通り)のイベントの以下の概要、階層的にその月のイベントの数と一緒に、年と月ごとにソートされます。
がSELECT start_date, date_format(start_date, "%Y") as year, date_format(start_date, "%m") as month FROM event ORDER BY start_date desc
その後、私のPHPループは次のとおりです。次のように私のクエリがあり、常に1行であるように思わ月あたりのイベントの数を除いて、完全にすべてのものを生成
$year = '';
$year_counter = 0;
$month = '';
$month_counter = 1;
while($row = mysql_fetch_assoc($result)){
if ($year != $row['year']) {
$year = $row['year'];
$output .= $year.'<br />';
}
if ($month == $row['month']) {
$month_counter++;
} else {
$month = $row['month'];
$output .= '--'.$month.' ('.$month_counter.')<br />';
$month_counter = 1;
}
}
オフ(上記の希望結果との違いをご覧ください)。
2012
--04 (1)
--02 (3)
--01 (1)
2011
--12 (1)
--11 (3)
--10 (2)
--09 (3)
--07 (1)
--02 (1)
私はこの午後すべてを成功させずに修正しています。私はそれを絶対的な専門家に任せておくことが最善だと思います。どうかお元気ですか?あなたの
$month = $row['month'];
年式の中に月のループを配置するとどうなりますか? –
これを行うと、毎年の最初の月のみが表示されます... – maartenmachiels