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, .....)

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top