IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

resultat requête TRI


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut resultat requête TRI
    Salut à tous,
    voila mon souci
    je range le résultat d'une requête par un "ORDERBY"(alphabétique)
    cela donne:
    ARELGC
    ARER
    ARETG
    ARETN
    ARETS
    LOT
    tout va bien sauf qu'il faudrait que la liste sorte de cette façon:

    ARELGC
    ARER
    ARETN
    ARETS
    ARETG
    LOT
    Comment puis-je faire?
    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fthem Voir le message
    AU SECOUR, je suis vraiment embétté, personne aurrait une réponse SVP
    Merci
    la logique c'est quoi ?

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Enfait je range mon résultat en faisant un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql=$sql. " ORDER BY $table.utilisateur;";
    et il me range ça par ordre alphabétique
    mon souci est qu'il y en a un que je ne voudrais pas au même endroit comme dans l'exemple ARETG

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fthem Voir le message
    Enfait je range mon résultat en faisant un
    $sql=$sql. " ORDER BY $table.utilisateur;";
    et il me range ça par ordre alphabétique
    mon souci est qu'il y en a un que je ne voudrais pas au même endroit comme dans l'exemple ARETG
    donc quelle est la logique du tri ???

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    CE SERAIT, si on peut l'exprimer ainsi
    par ordre alphabétique sauf pour ce ARETG que je voudrais placer à cet endroit comme dans le premier post

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fthem Voir le message
    CE SERAIT, si on peut l'exprimer ainsi
    par ordre alphabétique sauf pour ce ARETG que je voudrais placer à cet endroit comme dans le premier post
    donc aucune logique en soit, a part si tu connais d'avance les résultats c'est pas possible

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    je connais le résultat, c'est vraiment celui là, pas plus
    ARELGC
    ARER
    ARETN
    ARETS
    ARETG
    LOT

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fthem Voir le message
    je connais le résultat, c'est vraiment celui là, pas plus
    ARELGC
    ARER
    ARETN
    ARETS
    ARETG
    LOT
    récupère les id et fait le tri avec FIND_IN_SET

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    récupère les id et fait le tri avec FIND_IN_SET
    Tu ne pourrais pas me donner une idée à quoi la requête pourrait ressemblzr
    Merci

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fthem Voir le message
    Tu ne pourrais pas me donner une idée à quoi la requête pourrait ressemblzr
    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `truc` WHERE id IN (2, 5, 8) ORDER BY FIND_IN_SET(id, '2, 8, 5');

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    D'aprés toi, puis-je écrire:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $sql=$sql. " ORDER BY FIND_IN_SET ($table.utilisateur, 'ARELGC, ARER, ARETN, ARETS, ARETG, LOT');";
    Pas trés informaticien, je le conçoit, mais ça pourrait marcher???

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fthem Voir le message
    D'aprés toi, puis-je écrire:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $sql=$sql. " ORDER BY FIND_IN_SET ($table.utilisateur, 'ARELGC, ARER, ARETN, ARETS, ARETG, LOT');";
    Pas trés informaticien, je le conçoit, mais ça pourrait marcher???
    oui ca marche mais faut le IN qui va avec

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    oui ca marche mais faut le IN qui va avec
    Les données du IN sont une liste aléatoire, ou elles ont un classement spécifique?

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fthem Voir le message
    Les données du IN sont une liste aléatoire, ou elles ont un classement spécifique?
    ca doit correspondre au valeur de FIND_IN_SET, peux importe l'ordre

  15. #15
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    ok, j'essaie, et je te tiens au courant
    Merci

  16. #16
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Aïe!!!
    un bout de la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND $table.utilisateur IN (ACR, AMNMP, ARELGC, ARER, ARETG, ARETN, ARETS, LOT)";
    fin de la requête, puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql=$sql. " ORDER BY FIND_IN_SET ($table.utilisateur, 'ACR, AMNMP, ARELGC, ARER, ARETN, ARETS, ARETG, LOT');";
    et là
    1064: Something is wrong in your syntax près de '(acrbo.utilisateur, 'ACR, AMNMP, ARELGC, ARER, ARETN, ARETS, ARE' à la ligne 1

    t'as pu remarquer que je n'était pas un vrai programateur lol!!
    encore besoin un peu de ton aide

  17. #17
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fthem Voir le message
    Aïe!!!
    un bout de la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND $table.utilisateur IN (ACR, AMNMP, ARELGC, ARER, ARETG, ARETN, ARETS, LOT)";
    fin de la requête, puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql=$sql. " ORDER BY FIND_IN_SET ($table.utilisateur, 'ACR, AMNMP, ARELGC, ARER, ARETN, ARETS, ARETG, LOT');";
    et là
    1064: Something is wrong in your syntax près de '(acrbo.utilisateur, 'ACR, AMNMP, ARELGC, ARER, ARETN, ARETS, ARE' à la ligne 1

    t'as pu remarquer que je n'était pas un vrai programateur lol!!
    encore besoin un peu de ton aide
    il faut mettre des quotes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IN ('ACR', 'AMNMP', 'ARELGC', 'ARER', 'ARETG', 'ARETN', 'ARETS', 'LOT')

  18. #18
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    il faut mettre des quotes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IN ('ACR', 'AMNMP', 'ARELGC', 'ARER', 'ARETG', 'ARETN', 'ARETS', 'LOT')
    j'ai rajoutté Les simples cotes, mais tjrs la même erreur de syntaxe...
    faut-il les mettre aussi aprés le

  19. #19
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par fthem Voir le message
    j'ai rajoutté Les simples cotes, mais tjrs la même erreur de syntaxe...
    faut-il les mettre aussi aprés le
    montre a quoi correspond $sql au final

  20. #20
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    voici la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql="SELECT $table.cle,$table.centre,$table.date,$table.heure,$table.titre,$table.x_num,$table.y_num,$table.msg,$table.utilisateur,$table.avancement,$table.histo_start,$table.site,$table.po,$table.POIDS,$table.poste_source,$table.depart,$table.heure_realisee,$table.periode,$table.type,$table.fichier,$table.fdm,$table.fdmca,$table.maj,$table.i_nip,$table.i_nitst,$table.message_prive,$table_nip.ouvrage,$table_nip.travaux,$table_nitst.objet,$table_nitst.n_bt,$table_nitst.observations FROM $table,$table_nip,$table_nitst WHERE (date like '%$us_date%') AND $table_nip.cle=$table.i_nip AND $table_nitst.cle=$table.i_nitst AND $table.utilisateur IN ('ACR', 'AMNMP', 'ARELGC', 'ARER', 'ARETG', 'ARETN', 'ARETS', 'LOT')";
      $sql=$sql. $criteres;
    $sql=$sql. " ORDER BY FIND_IN_SET ($table.utilisateur, 'ACR', 'AMNMP', 'ARELGC', 'ARER', 'ARETN', 'ARETS', 'ARETG', 'LOT');";

Discussions similaires

  1. Requête, tri sur liste de choix
    Par seb.kepka dans le forum Access
    Réponses: 1
    Dernier message: 15/05/2006, 14h47
  2. [MySQL] affichages resultats requête avec un champ texte
    Par carelha dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/04/2006, 13h06
  3. [Requête] Tri via une liste déroulante
    Par Burnout dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/01/2006, 18h16
  4. [Requête] Tri des 10 plus importants
    Par askan dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 06/01/2006, 11h35
  5. Réponses: 1
    Dernier message: 29/12/2005, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo