www.mutationevent.com

afficher les archives de votre blog

Afficher les archives de votre blog sous cette forme

  • Janvier 2007 (10)
  • Décembre 2006 (35)
  • ...

Cela peut parfois sembler compliquer mais non, on peut le faire grâce à une seule requête

Supposons notre table "blog"

CREATE TABLE `blog` (
`id_blog` int(11) NOT NULL AUTO_INCREMENT,
`titre` varchar(150) NOT NULL DEFAULT '',
`texte` longtext NOT NULL,
`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id_blog`)
) TYPE=MyISAM ;

Pour afficher les archives :

SELECT DISTINCT YEAR( date ) AS year, MONTH( date ) AS
month , Count( id_blog ) AS posts, MONTHNAME(date) AS monthname
FROM blog
WHERE date < now( )
AND date != '0000-00-00 00:00:00'
GROUP BY YEAR( date ) , MONTH( date )
ORDER BY date DESC

Les champs que nous aurons sont : year,month,post,monthname

Reste plus qu'a les placer dans l'ordre : monthname year (post) avec le code php.

ET voici le code php

$query = "SELECT DISTINCT YEAR( date ) AS year, MONTH( date ) AS
month , Count( id_blog) AS posts, MONTHNAME(date) as monthname
FROM blog
WHERE date < now( )
AND date != '0000-00-00 00:00:00'
GROUP BY YEAR( date ) , MONTH( date )
ORDER BY date DESC "
$result = mysql_query($query,$connect);
$row = mysql_fetch_assoc($result);
 
do {
echo '<li><a href="/site/archives/'.$row['year'].'/'.$row['month'].'/">'.$row['monthname'].' '.$row['year'].' ('.$row['posts'].')</a></li>';
}while($row = mysql_fetch_assoc($result));

Laisser un commentaire

*
Pour prouver que vous n'êtes pas un bot, recopiez le code ci-dessous
Anti-Spam Image