Liste des entrées de blog par mois
Question
J'écris du code personnalisé pour créer un blog. J'ai besoin de la page archives pour lister toutes les entrées de blog par mois. Je ne peux pas trouver un moyen de le faire. Je suppose que cela ne devrait pas être trop difficile car c'est une caractéristique commune à tous les blogs. La structure de la table est (postid, posttitle, publishdate, .....)
La solution
Je ne suis pas sûr de comprendre la question, mais si vous souhaitez uniquement obtenir le nombre total de publications par mois, utilisez une requête comme celle-ci:
SELECT DATE_FORMAT(publishdate, '%Y%m') AS publishmonth, count(*) AS entrycount
FROM entries GROUP BY DATE_FORMAT(publishdate, '%Y%m')
Si vous souhaitez que toutes les publications d'un mois particulier:
SELECT * FROM entries WHERE publishdate > '2009-01' AND publishdate < '2009-02';
Et si vous souhaitez répertorier tous les articles groupés par mois sur une seule page, il vous suffit de les sélectionner, classés par publishdate
, puis de les regrouper localement.
Autres conseils
Si vos entrées proviennent d'une base de données SQL, il est plus simple de demander à cette personne d'effectuer le tri pour vous à l'aide d'un ORDER BY
. Quelque chose comme
select * from posts order by publishdate
Quelque chose comme ce pseudo-code:
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
}
Je pense.