学年に基づいて投稿のアーカイブを作成するのに助けが必要です。このウェブサイトの助けを借りて、通常のアーカイブを作成することができました。私はまだ PHP の初心者であり、平均的なバックエンド開発者にとって明らかな何かが欠けているように感じます。
これは、私のアーカイブが現在どのように見えるかのツリー ビューです。
2013
April
Post Title
March
Post Title
February
Post Title
Post Title
Post Title
January
Post Title
Post Title
Post Title
2012
December
Post Title
Post Title
Post Title
November
Post Title
Post Title
Post Title
もうすぐそこにあるように感じずにはいられませんが、どの日付範囲を表示するかをサイトに知らせる方法がわかりません. 私が試したことの1つは、このクエリを追加することでした:
$result = mysql_query("SELECT * FROM table WHERE table_date BETWEEN '2012-08' and '2013-07'") or die(mysql_error());
それは機能し、ほとんど私が望んでいたものです...しかし、時間の終わりまですべての学年にクエリを追加したくありません! これらの範囲を追加するには、毎年手動で行うよりも優れた方法が必要です。
編集:これが私の現在のコードです。「未定義のインデックス:hound_date」というエラーが表示されます
$result = mysql_query("SELECT CONCAT( YEAR(hound_date-INTERVAL 7 MONTH),'-',
1+YEAR(hound_date-INTERVAL 7 MONTH)) AS 'academic year',
COUNT(*) AS 'number of events'
FROM hound
GROUP BY CONCAT( YEAR(hound_date-INTERVAL 7 MONTH),'-',
1+YEAR(hound_date-INTERVAL 7 MONTH))") or die(mysql_error());
// An array to store the data in a more managable order.
$data = array();
// Add each entry to the $data array, sorted by Year and Month
while($row = mysql_fetch_array($result))
{
$hound_date=my_date($row['hound_date']);
list($year,$month)=explode(" ", $hound_date);
$data[$year][$month][] = $row;
}
// Go through each Year and Month and print a list of entries, sorted by month.
foreach($data as $_year => $_months)
{
echo '<hr/>';
echo "<h2>{$_year}</h2>";
foreach($_months as $_month => $_entries)
{
echo '<hr/>';
echo "<h3>{$_month}</h3>";
echo "<ul>";
foreach($_entries as $_entry)
{
echo '<li><a href="/?story='.$_entry["hound_id"].'">'.$_entry["hound_name"].'</a> </li>';
}
echo "</ul>";
}
}
どんな助けでも大歓迎です!