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

PHP & Base de données Discussion :

Forcer le tri [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut Forcer le tri
    bonjour tous le monde! bon, la, j'ai une requete sql qui fait un order by deux champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY devis_statut, devis_date
    mon champs devis_statut comporte 3 valeurs : 'accepte', 'annule, 'en attente'

    et je voudrais qu'il soit trié dans ce sens la : 'en attente', 'accepte', 'annule'

    sauf que c'est trié ainsi : 'accepte', 'annule, 'en attente' -normal par ordre alphabetique.


    comment forcer le tri de ce champs siouplais?

    merci bien

  2. #2
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Par défaut
    Bonjour,

    je voudrais pas trop m'avancer, mais il me semble que c'est impossible. Soit tu tries par ordre descroissant (DESC) soit tu tries par ordre croissant (ASC). Mais pas n'importe comment car dans ce cas là ce n'est plus un trie...
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 313
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 313
    Billets dans le blog
    17
    Par défaut
    et je voudrais qu'il soit trié dans ce sens la : 'en attente', 'accepte', 'annule'
    Normalement tu devrais avoir une table statuts avec des champs id, libellé et ordre. Ainsi tu pourrais trier tes statuts sur statuts.ordre

    Bon, pour éviter de tout chambouler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY FIELD(devis_statut, 'en attente', 'accepte', 'annule'), devis date
    http://dev.mysql.com/doc/refman/5.1/...function_field

  4. #4
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    deux choses :

    la premiere, c'est que ma requete est justement la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $statut=array(1=>'en attente', 2=>'accepte', 3=>'annule');	
     
    $sSql = "SELECT devis_id, devis_label,  (CASE devis_statut  ";
    	foreach ($statut as $key=>$value) {
         $sSql .= " WHEN '$key'  THEN  '$value'";
    	}
     
    		$sSql .=" END ) as devis_statut  FROM ".$_CONST["FW_PREFIXE_TABLE"]."devis ";
     
    		$sSql .= " ORDER BY devis_statut, devis_date
    donc, a l'origine, c'est des chiffres.


    deuxiemement, merci, mais la soluce n'est pas la bonne, ca m'affiche successivement des annule, des en attente, des accepte, re des en attente, et des accepte.


    j'y arrive pas!

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 313
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 313
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par kaking Voir le message
    deuxiemement, merci, mais la soluce n'est pas la bonne, ca m'affiche successivement des annule, des en attente, des accepte, re des en attente, et des accepte.
    Si si, c'est ta requête qui n'est pas bonne

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    pourquoi ne pas recuperer tes données triés et ensuite seulement au moment de l'affichage convertir les chiffres par les libellés correspondant annule,...

  7. #7
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    en effet, je crois que je m'y suis mal pris.

    je vais changer ma requete


    merci bien!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Forcer le tri sous SQL Server
    Par Jean-Philippe André dans le forum Langage SQL
    Réponses: 9
    Dernier message: 31/01/2012, 17h52
  2. Forcer le tri DataGrid
    Par Chacha35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/11/2009, 12h13
  3. Forcer le tri d'un datagridview lié à un dataset
    Par nikoko34 dans le forum VB.NET
    Réponses: 10
    Dernier message: 25/09/2008, 18h51
  4. Réponses: 3
    Dernier message: 13/12/2006, 16h01
  5. tri de liste chainée
    Par RezzA dans le forum C
    Réponses: 7
    Dernier message: 26/01/2003, 20h25

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