Les Allergies
Alimentaires
Posez votre question Signaler

[PHP] trier une requete sql sur les dates [Résolu]

okuni 1151Messages postés 4 septembre 2008Date d'inscription 18 mars 2012Dernière intervention - Dernière réponse le 11 nov. 2008 à 19:15
Bonjour,
J'ai une requete sql qui sélectionne tout mes membres avec les dates d'inscription et de dèrnière connexion.
voici le code
$query = 'SELECT id_user,login,mail,newslettre,web,DATE_FORMAT(anniversaire, "%d/%m/%y") as anniversaire,nom,prenom,privilege,DATE_FORMAT(date_inscription,"%d/%m/%y") as date_inscription,DATE_FORMAT(date_login, "%d/%m/%y") as date_login FROM raynal_utilisateurs ORDER BY date_login DESC LIMIT '.$premier_message.','.$nombre_entree_par_page;
		$result = mysql_query($query)or die (mysql_error());

ici j'ai donc mis "ORDER BY date_login" mais le problème, c'est qu'il ne le classe pas selon une date mais simplement en prenant les nombres sans aucun lien donc j'ai ceci :
29/09/08
25/09/08
16/08/08
11/10/08
09/09/08

etc.
comment faire pour avoir ceci :
16/08/08
09/09/08
25/09/08
29/09/08
11/10/08

merci de vos réponses.
Lire la suite 

[PHP] trier une requete sql sur les dates »

10 réponses
Réponse
+2
moins plus
bonjour,
il y a un lien : les jours sont décroissants !

a essayer :

ORDER BY strtotime(date_login)

okuni- 11 nov. 2008 à 18:07
En écrivant ceci, j'ai une erreur :
FUNCTION mogwi-bli.strtotime does not exist

mogwi-bli c'est le nom de la base de donnée sql.
divland- 11 nov. 2008 à 18:12
strtotime = fonction php
à utiliser :

ORDER BY '.strtotime(date_login).'

okuni- 11 nov. 2008 à 18:57
J'obtiens quelque chose de bizarre :
11/11/08
07/09/08
16/08/08
09/09/08
24/10/08

on dirait qu'il ne tien pas compte du tri. je crois qu'il a trié le tableau en fonction de l'ID croissant
Ajouter un commentaire
Réponse
+2
moins plus
concat (substr(date_..(pos,longueur), ... as tri
substr ou left et right
en fait créer une variable intermédaire annee mois jour pour en faire l'argument de tri
et en fin de requête, order by tri

réponse rapide car je regarde le foot

ça donne quelqiue chose comme ça
select concat(SUBSTRING(date_inscription,7,2),SUBSTRING(date_inscription,4,2),SUBSTRING(date_inscription,0,2)
as tri

Ajouter un commentaire
Réponse
+0
moins plus
Essaye en Speciafiant si tu les veux en ordre decroissant (DESC) ou croissant (ASC)
du genre:
$requete=mysql_query("select nom,date form users where date >11/2008 order by date ASC");
cordialement,
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

une concaténation de annee,mois,jour (avec des substr de la date) et tri sur ce résultat.
Ajouter un commentaire
Réponse
+0
moins plus
Autant pour moi je n'avais pas lu la requete jusqu'au bout.
Essaye la solutionde giheller, qui me parait adaptée.
cordialement,
Ajouter un commentaire
Réponse
+0
moins plus
Je ne comprend pas ce que tu veux dire giheller.
Peux-tu me donner un exemple?

J'essaye ton système divland.
Ajouter un commentaire
Réponse
+0
moins plus
Merci, j'ai compris après avoir failli pété un câble :p
Ajouter un commentaire
Ce document intitulé « [PHP] trier une requete sql sur les dates » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?