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 :

[SQL] Fonction pour trier un tableau


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Points : 30
    Points
    30
    Par défaut [SQL] Fonction pour trier un tableau
    Bonjour,

    Je voulais faire un mode de tri pour ce tableau, soit trié par date, soit par intitulé. Savez vous comment ajouter cette fonction pour un tableau?

    Merci bp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    function affichedevoirs(){
    $req = "SELECT intitule, enonce, date_rendu
            FROM devoirs, enseignements
            WHERE devoirs.id_ec=enseignements.id";
    $res =mysql_query($req);
    $nb = mysql_num_fields($res);
    echo "<CENTER>\n<TABLE BORDER=\"1\" WIDTH=100%>\n<TR ALIGN=\"CENTER\">\n";
    for($i=0; $i<$nb; $i++){
        $nomcol=mysql_field_name($res, $i);
        echo "<TD ALIGN=\"center\"><B>$nomcol</B></TD>";}
        echo "</TR>";
    while($ligne=mysql_fetch_object($res)){
    echo "<TR><TD ALIGN=\"CENTER\" WIDTH=20%>$ligne->intitule</TD><TD ALIGN=\"CENTER\" WIDTH=70%>$ligne->enonce</TD><TD ALIGN=\"CENTER\" WIDTH=10%>$ligne->date_rendu</TD></TR>"; 
    }
    echo "</TABLE></CENTER>\n";}

  2. #2
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 185
    Points
    185
    Par défaut
    Trier directement en SQL c'est possible avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY champ [ASC|DESC]
    en fin de requête

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Merci!
    Mais, je veux ajouter un mode de tri pour que l'utilisateur puisse le choisir.

  4. #4
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 185
    Points
    185
    Par défaut
    Et alors ? quel est le problème.
    Il suffit d'ajouter une liste déroulante dans ta page web et de construire ta requete sql en fonction de ce que l'utilisateur à choisi.

  5. #5
    Membre averti
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Points : 344
    Points
    344
    Par défaut
    euh, rééffectuer une requète sql a chaque fois que tu veux changer l'ordre de tri de ta page, est-ce optimum? Je ne suis pas forcément sur, sur le long terme.

    TOujours est-il qu'en PHP, tu peux regarder du coté des fonction sort(): http://fr.php.net/manual/fr/function.sort.php

    Onet
    ---
    Retrouvez tout mes tutos et mes articles: http://www.olivierlange.com

  6. #6
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    TOujours est-il qu'en PHP, tu peux regarder du coté des fonction sort()
    Il faudra quand même remplir le tableau avant de le trier avec sort() donc probablement refaire une requête sql, à moins qu'il y ait un système de caching.

    Il y a aussi moyen de trier des tableaux html avec javascript (coté client bien sûr)

  7. #7
    Membre averti
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Points : 344
    Points
    344
    Par défaut
    rien ne t'empèche de garder ton tableau, et donc d'éviter de refaire ta requète sql (passage de paramètre, etc...).

    Sinon, reste bien entendu le javascript

    Onet
    ---
    Retrouvez tout mes tutos et mes articles: http://www.olivierlange.com

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 51
    Points : 30
    Points
    30
    Par défaut
    Merci !

    Voici, j'ai écrit un mode de tri dans un menu déroulant pour que l'utilisateur puisse choisir quel type de tri.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $req = "SELECT date_rendu, intitule
             FROM devoirs, enseignements
             WHERE enseignements.id=devoirs.id_ec";
    $res = mysql_query($req);
    $nb = mysql_num_fields($res);
    echo "Trié par : ";
    echo "<SELECT name=\"trier\">";
    for($i=0;$i<$nb;$i++){
        $nomcol=mysql_field_name($res, $i);
        echo "<OPTION value=\"$nomcol\" />$nomcol";     }
        echo "</SELECT>";
    Comment je peux afficher les différents résultats selon le mode de tri, doit je utiliser Jasvascript, je ne le connais pas, pourriez-vous préciser? Merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/08/2007, 09h47
  2. [MySQL] Problème pour trier un tableau
    Par jojo57 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/04/2007, 13h12
  3. problème pour trier un tableau de hashage
    Par Jasmine80 dans le forum Langage
    Réponses: 1
    Dernier message: 25/02/2007, 13h02
  4. Réponses: 9
    Dernier message: 17/02/2006, 11h04
  5. [SQL ] Fonction pour remplacer caract. speciaux et accentué
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 3
    Dernier message: 31/01/2006, 15h16

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