Tri sur champ Date Mysql

Protanim
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 306
Inscription: 2 Avr 2005

Tri sur champ Date Mysql

Message le Mar Sep 08, 2009 11:08

Bonjour,

Voila dans une base de données MySQL, j'ai 4 colonnes que je veux exploiter :
- Titre
- Lien
- Date (avec un type "date" de mysql année-mois-jour).
- Categorie

J'aimerais via une requete afficher tous les résultats pour une catégorie donnée classé par date en regroupant toutes les infos par mois. Je prends un exemple pour être plus clair

Imaginons j'ai :
Code: Tout sélectionner
Premier titre / lien-vers-premier-titre.php / 2009-08-05
Deuxième titre / lien-vers-deuxieme-titre.php / 2009-08-01
Troisième titre / lien-vers-troisieme-titre.php / 2009-07-29
Quatrième titre / lien-vers-quatrieme-titre.php / 2009-07-04
Cinquième titre / lien-vers-cinquieme-titre.php / 2009-06-05

J'aimerais :
Code: Tout sélectionner
Aout 2009

Premier titre
Deuxième titre

Juillet 2009

Troisième titre
Quatrième titre

Juin 2009

Cinquième titre


Quel type de requete php dois je faire ?
En fait je ne sais pas comment faire pour dire que je veux grouper par annee-mois identique et convertir les chiffres de années mois en lettres ?

Merci d'avance pour votre aide


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Re: Tri sur champ Date Mysql

Message le Mar Sep 08, 2009 11:20

Tu tri par dates coté SQL.
Et tu fais la séparation et la traduction en texte coté PHP (beaucoup plus simple!).

Protanim
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 306
Inscription: 2 Avr 2005

Re: Tri sur champ Date Mysql

Message le Mar Sep 08, 2009 11:25

C'est à dire ?


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Re: Tri sur champ Date Mysql

Message le Mar Sep 08, 2009 11:30

Et bien tu fais ta requête SQL avec un tri sur les dates.

Ensuite l'algo c'est un truc du genre :

Code: Tout sélectionner
   Variable resultats = executerMonSQL();
   Variable dateEnCours = null;
   Pour chaque enregistrement faire
             Si dateEncours != date enregtrement alors
                 Afficher date
                 dateEncours = date enregistrement
             FinSi
             AfficherTexte
   FinPour


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: Tri sur champ Date Mysql

Message le Mar Sep 08, 2009 13:37

Bonjour,


Mais comme le dit Bacteries tu ne pourras tout faire dans la requête

Tu dois par contre bien pouvoir faire un group by par année-mois
Voici un lien qui peut t'être intéressant http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html

mob
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 22
Inscription: 3 Juil 2007

Re: Tri sur champ Date Mysql

Message le Mar Sep 08, 2009 14:20

voici un exemple qui pourrait t'aider
Code: Tout sélectionner
SELECT * FROM ma_table order by DATE_FORMAT(`mon_champ_date`, '%Y%m');

Protanim
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 306
Inscription: 2 Avr 2005

Re: Tri sur champ Date Mysql

Message le Sam Sep 26, 2009 22:16

J'ai réglé le problème, merci


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités