[PHP] trier une requete sql sur les dates
Résolu
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
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 :
etc.
comment faire pour avoir ceci :
merci de vos réponses.
--
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)
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.
--
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)
7 réponses
-
bonjour,
il y a un lien : les jours sont décroissants !
a essayer :
ORDER BY strtotime(date_login)
-
-
-
@divlandJ'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
-
-
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, -
Bonsoir,
une concaténation de annee,mois,jour (avec des substr de la date) et tri sur ce résultat.
-
Autant pour moi je n'avais pas lu la requete jusqu'au bout.
Essaye la solutionde giheller, qui me parait adaptée.
cordialement, -
Je ne comprend pas ce que tu veux dire giheller.
Peux-tu me donner un exemple?
J'essaye ton système divland. -
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
-
Merci, j'ai compris après avoir failli pété un câble :p