Structurer l'affichage chronologiquement

Eléphant du PHP | 331 Messages

14 sept. 2007, 21:45

Bonjour,

Je veux faire afficher des citations (pensées) sur mon site Web de façon chronologique.

J'envisage en mettre 2 par semaine.

Elle seront enregistré dans une table:
CREATE TABLE `citations_archives` (
`id` int(255) NOT NULL auto_increment,
`nom` varchar(255) NOT NULL default '',
`description` text NOT NULL,
`date` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;
La date est inséré avec cette variable:
$date = date("d-m-Y");
Mon problème est que je ne sait pas comment faire la requête qui fera en sorte de voir les citations classées par mois et par années.

Exemple:
  • Septembre 2007
    • Citation bla bla bla ...
      Citation bla bla bla ...
      Citation bla bla bla ...
    Août 2007
    • Citation bla bla bla ...
      Citation bla bla bla ...
      Citation bla bla bla ...
    Juillet 2007
    • Citation bla bla bla ...
      Citation bla bla bla ...
      Citation bla bla bla ...
    ....
    ....
    Décembre 2006
    • Citation bla bla bla ...
      Citation bla bla bla ...
      Citation bla bla bla ...
    Novembre 2006
    • Citation bla bla bla ...
      Citation bla bla bla ...
      Citation bla bla bla ...
Pouvez-vous m'aidez svp?

Merci!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 sept. 2007, 00:33

Peut être commencé par utiliser un champ de type "DATE" pour stocker une date en utilisant le format adéquat : AAAA-MM-JJ (et si possible en lui donnant un nom qui n'est pas un mot clé réservé sql)
Ensuite tu pourras utiliser la clause ORDER BY dans tes requêtes pour trier les enregistrements.

La réorganisation par mois / année se fera ensuite, en php.. il y a de nombreux topics sur ce forum qui expliquent comment faire en utilisant une variable temporaire..
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 331 Messages

17 sept. 2007, 22:37

et si possible en lui donnant un nom qui n'est pas un mot clé réservé sql
Là tu parle du nom de ma variable $date ?

ViPHP
ViPHP | 2287 Messages

17 sept. 2007, 22:57

et si possible en lui donnant un nom qui n'est pas un mot clé réservé sql
Là tu parle du nom de ma variable $date ?
Non, il parle surtout du champ date de ta table... Qui d'ailleurs est de type varchar, ce qui est une erreur (toujours, car DATE est un mot-clé réservé en sql) et tout particulièrement pour ce que tu veux faire ;-)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphant du PHP | 331 Messages

24 sept. 2007, 00:58

La solution à mon problème est:
		mysql_connect($host,$login,$password) or die("Impossible de connecter la bd");
		$base=mysql_select_db($db) or die("erreur de DB");
		$an='';$mois='';$day='';
		$res=mysql_query('SELECT id, auteur, description, DAYOFMONTH(date_arch) day, YEAR(date_arch) an, MONTH(date_arch) mois FROM `citations_archives` ORDER BY an DESC, mois DESC, day DESC') or die(mysql_error());
		while($ligne=mysql_fetch_assoc($res))
		{
    	  if(($ligne['mois'] != $mois) or ($ligne['an']!=$an))
		  {
          $an=$ligne['an'];
          $mois=$ligne['mois'];
		 // $day=$ligne['day'];
		  
		  		$sqlAR1 = "select * from mois where id=".$mois."";
				$resultAR1 = mysql_query($sqlAR1);
				$rowAR1=mysql_fetch_array($resultAR1);
		  
		  
          echo "<h4>".$rowAR1["nom"]." ".$an."</h4>\n";
          }
		  
		  
		 echo "<table CELLPADDING=0 CELLSPACING=0>\n";
		 echo "<tr><td>".$ligne['day']."/".$mois."/".$an."</td></tr>\n";
		 echo "<tr><td><p align=\"justify\">".stripslashes($ligne['description'])."</p><p align=\"center\"><i>".stripslashes($ligne['auteur'])."</i></p></td></tr>\n";
		 echo "</table>\n";
     	 } 

ViPHP
AB
ViPHP | 5818 Messages

24 sept. 2007, 01:11

Oui mais là tout le monde va te dire que c'est pas bien du tout de faire une requête dans la lecture d'une boucle d'une autre requête

Eléphant du PHP | 331 Messages

24 sept. 2007, 01:24

Tu me suggère quoi alors comme solution pour afficher le nom des mois en français?

ViPHP
AB
ViPHP | 5818 Messages

24 sept. 2007, 03:36

Tu fais le traitement de correspondance en php, par exemple avec un tableau.