Requête SQL avec tri double..

Résolu
supupoff Messages postés 350 Statut Membre -  
supupoff Messages postés 350 Statut Membre -
Bonjour,

Je n'arrive pas à effectuer un tri double dans requête SQL

j'ai deux champ naissance et année d'inscrire j'ai veux faire in tri ASC avec les deux champs

Champ Naissance est de type Date
champ Annee et de type Int

losque je fait un tri simple avec annee seulement ou naissance seulemnt ça fonctionne bien mais pas avec les deux en meme temps
ben moi je trouve pas d'erreur c que ma torture

voila le requête
$res1=mysql_query("SELECT * FROM candidature where candidature.typecertficat  ='6 ans' ORDER BY   'candidature'.'naissance', 'candidature'.'annee' ASC  LIMIT $premiereEntree,$messagesParPage"); 


PS : lâ il affiche le résultat trié par naissance seulement et non avec les deux
Merci d'avance
a+

4 réponses

  1. Bruce Willix Messages postés 12376 Date d'inscription   Statut Contributeur Dernière intervention   2 640
     
    Ce sont les arguments du "WHERE" qui ne sont pas bons. Tu dois utiliser un "AND" pour combiner tes deux critères. Et donc ça donne:

    WHERE (candidature.typecertficat ='6 ans' AND candidature.annee='1990')


    Ton second argument donne l'ordre de classement: d'abord par la naissance, ensuite par l'année.

    Petit conseil, pour que ton texte soit clair, je te conseille de l'indenter et de mettretes opérateurs en majuscules:

    $res1=mysql_query("
      SELECT * FROM candidature
      WHERE (candidature.typecertficat  ='6 ans' AND candidature.annee='1990')
      ORDER BY   'candidature'.'naissance', 'candidature'.'annee' ASC
      LIMIT $premiereEntree,$messagesParPage"); 


    plus d'infos ici
    0
    1. supupoff Messages postés 350 Statut Membre 34
       
      Merci,

      J'ai veux affiché tous les année de
      candidature.typecertficat  ='6 ans
      ' de tous les années
      ma problème ici dans Order BY si j'ai fait
      ORDER BY   'candidature'.'naissance', 'candidature'.'annee' ASC
      il ne prend on considération que
       candidature'.'naissance' 
      et non les deux :))
      0
  2. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Tu peux nous donner un extrait de résultat qui ne te convient pas ?
    Et mettre, avec, ce que tu aurais voulu obtenir ?

    Xavier
    0
  3. supupoff Messages postés 350 Statut Membre 34
     
    Mercii ,

    Voila c que j'ai cherche
    Afficher le resulta trié de c façon

    | Date de naissance  |Annee d'inscription |.....|....|
    ---------------------------+---------------------
    | 20-1-1985               | 2001                | 
    | 22-1-1985               | 2001                | 
    | 13-7-1985               | 2002                | 
    | 4-11-1985             | 2003                  | 
    | 14-1-1986              | 2004                 | 
    | 18-1-1986                 | 2007              | 
    |   6-2-1986                 | 2009              | 
    | 10-1-1987               | 2010                | 
    | 1-11-1989             | 2011                  | 
    


    Merci
    a+
    0
  4. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Tu veux que le tri dissocie les deux colonnes ?
    Qu'une année d'inscription ne corresponde pas forcément à la date de naissance sur la même ligne ?
    0
    1. supupoff Messages postés 350 Statut Membre 34
       
      oui c'est sa :!

      exemple : M.X née le 3/3/1985 inscris l'année 2001
      M.Y née le 1/3/1985 isncrie l'année 2001
      M.Z née le 3/4/1985 isncrie l'année 2001
      M.W née le 7/3/1985 isncrie l'année 2004

      ==> Il faut afficher comme ceci
      Nom + Date de naissance + Année d'inscription+.. 
      -------+---------------------------+---------------------------+ 
      Y        |  1/3/1985                   |     2001                       | 
      ------------------------------------------------------------------ 
      X        |  3/3/1985                   |     2001                       | 
      ------------------------------------------------------------------ 
      Z        |  3/4/1985                   |     2001                       | 
      ------------------------------------------------------------------ 
      W        |  7/3/1985                   |     2004                      | 
      ------------------------------------------------------------------
      0
    2. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Euh, dans ce que tu dis, tu tries donc d'abord par année d'inscription, et ensuite par date de naissance ?
      Donc :
      ORDER BY 'candidature'.'annee', 'candidature'.'naissance' ASC
      0
    3. supupoff Messages postés 350 Statut Membre 34
       
      ça ne marche pas la requête faire le tries que par année et pas avec es deux : !!! bizarre ; :!!!!
      si j'ai fait
      ORDER BY 'candidature'.'annee', 'candidature'.'naissance' ASC

      tries par annee ça marche mais pas avec le naissance

      si j'ai fait
      ORDER BY 'candidature'.'naissance', 'candidature'.'annee' ASC

      trie par naissance sa marche mais pas avec année

      cad le trie n'est c faite pas avec naissance et année :!!! voila ma prblm :
      0
    4. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Oui mais depuis le début je demande que tu mettes le résultat que tu ne trouves pas bon ^^'
      Tu peux le donner ? Un copier-coller de ce qui ne marche pas ?
      0
    5. supupoff Messages postés 350 Statut Membre 34
       
      Voila ceci c que s'affiche

      http://desmond.imageshack.us/Himg546/scaled.php?server=546&filename=sanstitrenl.jpg&res=medium

      et ceci la structure de table dans bd
      http://desmond.imageshack.us/Himg215/scaled.php?server=215&filename=sanstitre1om.jpg&res=medium
      0