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 :

Tri précis dans une requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2006
    Messages : 291
    Points : 225
    Points
    225
    Par défaut Tri précis dans une requête
    Bonjour à tous,

    J'ai une banale requête mysql mais je voudrais afficher les résultats dans un ordre précis (sans avoir à retoucher l'id de chaque colonne dans la base).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = mysql_query("SELECT col FROM table");
    Y a-t-il un moyen de jouer avec ORDER BY pour donner une suite d'identifiant, par exemple, un peu du genre ORDER BY id IN (5,8,2) ? (exemple qui ne fonctionne pas, on l'aura compris)

    Sinon, je suis obligé de faire un tableau avec mes valeurs, puis un foreach avec la requête dedans, mais j'ai peur que ce soit un peu lourd en terme de ressources.

    Merci de vos pistes.
    Le mieux n'est pas forcément l'ennemi du bien.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    bonjour,
    c'est possible avec la fonction mysql field().Par exemple pour retourner dans cet ordre :5,8,7

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = mysql_query("SELECT * FROM table ORDER BY FIELD(id,5,8,7) ");//affichera 5,8,7
     
    $sql = mysql_query("SELECT * FROM table ORDER BY FIELD(id,5,8,7)  asc");//affichera 5,7,8

  3. #3
    Membre actif
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2006
    Messages : 291
    Points : 225
    Points
    225
    Par défaut
    Merci, c'est exactement ce que cherchais, je ne l'ai pas trouvé dans la documentation sur ORDER BY.
    Le mieux n'est pas forcément l'ennemi du bien.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    voici le lien :field()

    par contre pour trier les enregistrement qui se suivent j'aurai dû écrire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = mysql_query("SELECT * FROM table ORDER BY FIELD(id,5,8,7) ");//affichera 5,8,7
     
    $sql = mysql_query("SELECT * FROM table ORDER BY FIELD(id,5,8,7)  desc");//affichera 7,8,5

  5. #5
    Membre actif
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2006
    Messages : 291
    Points : 225
    Points
    225
    Par défaut
    Merci pour ces précisions et pour le lien.
    Le mieux n'est pas forcément l'ennemi du bien.

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

Discussions similaires

  1. Tri personnalisé dans une requête
    Par TeoSitran dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/04/2014, 14h27
  2. identification CAS précis dans une requête
    Par plutonium719 dans le forum Développement
    Réponses: 3
    Dernier message: 10/03/2008, 12h09
  3. identification CAS précis dans une requête
    Par plutonium719 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/03/2008, 12h09
  4. Réponses: 7
    Dernier message: 08/02/2008, 10h35
  5. Tri dans une requête
    Par jmde dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/02/2007, 14h40

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