0

「post_date」という列を持つDBがあります。各エントリは YMD で、2013-06-01 のようになります。

私がやりたいことは、次のように PHP を使用して自分のページに表示することです。

2013
06-01, 05-31, 05-30, etc

2012
06-01, 05-31, 05-30, etc

2011
06-01, 05-31, 05-30, etc

月と日は、データベースにあるものです。GROUP BY YEAR(post_date) を試しましたが、成功しませんでした。これどうやってするの?ありがとう。

4

3 に答える 3

0

これまでのところ、私は持っています:

SELECT YEAR(post_date) AS year, MONTH(post_date) AS month, DAY(post_date) AS day FROM archives GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY YEAR(post_date) DESC, MONTH(post_date) DESC, DAY(post_date) DESC

しかし、最後の2行は表示されていません。

私が取得する形式は次のとおりです。2013 0601

2013 0531

そのため、ループ内に年を入れずにループする方法について混乱していますが、ループされています。

于 2013-06-01T20:37:39.787 に答える
0

必要なすべての行を選択してから、php でループを使用します。

foreach($sqlArray as $result){
    $date = explode(' ',$result['post_date']);
    $Ymd = explode('-',$date);
    $resultArray[$Ymd[0]][] = $Ymd[1].'-'.$Ymd[2];
}
foreach($resultArray as &$array){
    arsort($array);
}

または試しarray_map($resultArray,'arsort');てから

foreach($resultArray as $year=>$dates){
echo $year;
    foreach($date as $date){
echo $date;
     }
}
于 2013-06-01T20:38:08.757 に答える