Requête SQL avec tri double..

Résolu
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. Contributeur
    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
    1. 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 :))
  2. 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
    1. 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+
      1. 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 ?
        1. 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                      | 
          ------------------------------------------------------------------
        2. 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
        3. ç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 :
        4. 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 ?
        5. 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