Rechercher : dans
Par :

[PHP] trier une requete sql sur les dates

Dernière réponse le 11 nov 2008 à 19:15:57 okuni, le 11 nov 2008 à 17:50:19 
 Signaler ce message aux modérateurs

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. L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)

Meilleures réponses pour « [PHP] trier une requete sql sur les dates » dans :
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
SQL - Tri VoirTri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou...
Exécution de requêtes avec JDBC VoirExécution d'une requête SQL Pour exécuter une requête SQL, il s'agit dans un premier temps de créer un objet Statement, pouvant être obtenu à partir de l'objet Connection. Un objet ResultSet permettra de récupérer les données en provenance de...

1

Nuk, le 11 nov 2008 à 17:53:05

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,

Répondre à Nuk

2

giheller, le 11 nov 2008 à 17:55:55

Bonsoir,

une concaténation de annee,mois,jour (avec des substr de la date) et tri sur ce résultat.
JL,  m'enfin c'est juste mon avis @+,

Répondre à giheller

3

Nuk, le 11 nov 2008 à 17:59:24

Autant pour moi je n'avais pas lu la requete jusqu'au bout.
Essaye la solutionde giheller, qui me parait adaptée.
cordialement,

Répondre à Nuk

4

divland, le 11 nov 2008 à 18:00:18

Bonjour,
il y a un lien : les jours sont décroissants !

a essayer :

ORDER BY strtotime(date_login)

bien cordialement,
Patrick

Répondre à divland

6

okuni, le 11 nov 2008 à 18:07:39

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. L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

7

divland, le 11 nov 2008 à 18:12:11

Strtotime = fonction php
à utiliser :

ORDER BY '.strtotime(date_login).'

bien cordialement,
Patrick

Répondre à divland

9

okuni, le 11 nov 2008 à 18:57:32

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 L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

5

okuni, le 11 nov 2008 à 18:02:24

Je ne comprend pas ce que tu veux dire giheller.
Peux-tu me donner un exemple?

J'essaye ton système divland. L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

8

giheller, le 11 nov 2008 à 18:12:57
  • +1

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_inscri­ption,4,2),SUBSTRING(date_inscription,0,2)
as tri

JL,  

Répondre à giheller

10

 okuni, le 11 nov 2008 à 19:15:57

Merci, j'ai compris après avoir failli pété un câble :p L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni