[PHP] trier une requete sql sur les dates

Résolu
okuni Messages postés 1325 Statut Membre -  
okuni Messages postés 1325 Statut Membre -
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)

7 réponses

  1. divland Messages postés 215 Statut Membre 13
     
    bonjour,
    il y a un lien : les jours sont décroissants !

    a essayer :

    ORDER BY strtotime(date_login)

    2
    1. okuni Messages postés 1325 Statut Membre 126
       
      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.
      0
      1. divland Messages postés 215 Statut Membre 13 > okuni Messages postés 1325 Statut Membre
         
        strtotime = fonction php
        à utiliser :

        ORDER BY '.strtotime(date_login).'

        0
      2. okuni Messages postés 1325 Statut Membre 126 > divland Messages postés 215 Statut Membre
         
        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
        0
  2. giheller
     
    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

    2
  3. Nuk Messages postés 189 Statut Membre 20
     
    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,
    0
  4. giheller
     
    Bonsoir,

    une concaténation de annee,mois,jour (avec des substr de la date) et tri sur ce résultat.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nuk Messages postés 189 Statut Membre 20
     
    Autant pour moi je n'avais pas lu la requete jusqu'au bout.
    Essaye la solutionde giheller, qui me parait adaptée.
    cordialement,
    0
  7. okuni Messages postés 1325 Statut Membre 126
     
    Je ne comprend pas ce que tu veux dire giheller.
    Peux-tu me donner un exemple?

    J'essaye ton système divland.
    0
  8. okuni Messages postés 1325 Statut Membre 126
     
    Merci, j'ai compris après avoir failli pété un câble :p
    0