質問

ブログを作成するためのカスタムコードを書いています。月ごとにすべてのブログエントリを一覧表示するには、アーカイブページが必要です。私はそれを行う方法を思い付くことができません。 すべてのブログで共通の機能であるため、それほど難しくないはずです。 テーブル構造は(postid、posttitle、publishdate、.....)

です。
役に立ちましたか?

解決

質問を理解したかどうかはわかりませんが、月ごとにすべての投稿の数だけが必要な場合は、次のようなクエリを使用します。

SELECT DATE_FORMAT(publishdate, '%Y%m') AS publishmonth, count(*) AS entrycount
FROM entries GROUP BY DATE_FORMAT(publishdate, '%Y%m')

特定の月のすべての投稿が必要な場合:

SELECT * FROM entries WHERE publishdate > '2009-01' AND publishdate < '2009-02';

また、月ごとにグループ化された all の投稿を1つのページに一覧表示する場合は、それらを publishdate でソートして選択し、ローカルでグループ化します。

他のヒント

エントリがSQLデータベースからのものである場合、 ORDER BY を使用してソートを実行するように依頼するのが最も簡単です。次のようなもの

select * from posts order by publishdate

この擬似コードのようなもの:

SELECT `publishdate` FROM `entries` ORDER BY DESC `publishdate` GROUP BY YEAR(`publishdate`), MONTH(`publishdate`);
foreach ($dates as $date) {
    $date = mysql_real_escape_string($date)
    SELECT * FROM `entries` WHERE `publishdate` = $date
}

私は思う。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top