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 :

Tableau : filtrage et tri


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut Tableau : filtrage et tri
    Bonjour à tous,

    Dans le cadre d'un projet de site internet, j'aurais besoin d'aide concernant le filtrage et le tri de données dans un tableau à l'aide de requêtes Mysql. Je précise que je débute en PHP/Mysql.

    Présentation


    J'ai crée un tableau avec des données stockées dans une table appelée "Clients" et qui contient les champs suivants (simplifiés pour l'exemple) : Nom, Prénom, Pays et Ville.



    J'ai réussi à créer la table, les champs et à entrer les enregistrements (grâce à un tutorial trouvé sur le net). J'ai également réussi à afficher les données dans une page en .php.

    Ce que je veux

    Maintenant que j'ai mon tableau dans une page en .php, je voudrais deux choses :

    1) filtrer les données par "Pays", c'est-à-dire qu'au dessus du tableau on ait une liste déroulante qui permette de n'afficher que les données du pays sélectionné. Par exemple, on sélectionne France et on a que les deux Dupont/d qui s'affichent.

    Je sais grâce à phpmyadmin que la requête mysql est la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT champs FROM nom de la table WHERE condition ";
    Cependant je ne sais pas comment le programmer en php.

    2) trier les données par ordre alphabétique, c'est-à-dire lorsqu'on clique sur "ville" par exemple cela trie la colonne ville par ordre alphabétique (et le reste des données d'adapte).

    Idem, je ne sais pas comment m'y prendre.

    Je vous remercie d'avance pour vos réponses.

  2. #2
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Bonjour ! Tout d'abord bienvenue sur le forum, donc tu débute en php ?

    Pour la liste rien de plus simple, tu sais la remplir ? On va supposer que la liste est déjà rempli : Donc il faut que cette liste soit dans une formulaire : Et qu'il faille donc un bouton de type sbmit et voila comment on ferait donc :

    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
    <form method="POST" action="">
    <!-- Ta liste -->
    <input type="submit" name="btOk" value"Selectionner!" />
    </form>
    <?php
    $ville=$_POST['NomDeLaListe'];
    $res=mysql_query("SELECT * FROM CLIENT WHERE Ville = '$ville'",$cnx) or die(mysql_error());
    ?>
    <table border="1" align="center"><tr><th>Nom.......</tr>
     
    <?php While($JeuEnr=mysql_fetch_assoc($res)){
    ?><tr><td><?php echo $JeuEnr['Nom'] ;?></td>
    //.... 
    </tr>
    <?php
    } ?>
    Pour trier par ordre alphabétique on pourrait éviter de faire cliquer l'internaute en rajoutant dans ta requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res=mysql_query("SELECT * FROM CLIENT WHERE Ville = '$ville' ORDER BY Ville",$cnx) or die(mysql_error());

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Merci pour ta réponse, cela marche... en partie. J'ai deux problèmes :

    1) J'ai le message Notice: Undefined index: liste in D:\...\.php on line 35 qui s'affiche au chargement de la page mais qui disparait une fois un choix réalisé dans la liste.
    Ligne 35 : $categorie=$_POST['liste'];

    2) Comment faire pour éviter les doublons dans la liste déroulante ?

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <form method="POST" action="essai.php">
      <select name="liste">
        <?php
    do {  
    ?>
        <option value="<?php echo $row_Tri_mysql['Ville']?>"><?php echo $row_Tri_mysql['Ville']?></option>
        <?php
    } while ($row_Tri_mysql = mysql_fetch_assoc($Tri_mysql));
      $rows = mysql_num_rows($Tri_mysql);
      if($rows > 0) {
          mysql_data_seek($Tri_mysql, 0);
    	  $row_Tri_mysql = mysql_fetch_assoc($Tri_mysql);
      }
    ?>
      </select>
    <input name="ok" type="submit" id="ok" value"Selectionner!" />
    </form>
    <?php
    $categorie=$_POST['liste'];
    $res=mysql_query("SELECT * FROM clients WHERE Ville = '$categorie'") or die(mysql_error());
    ?>
    <table border="1" align="center">
    <tr>
    <td>Nom</td>
    <td>Prénom</td>
    <td>Pays</td>
    <td>Ville</td>
    <?php While($JeuEnr=mysql_fetch_assoc($res)){
    ?>
    <tr>
    <td><?php echo $JeuEnr['Nom'] ;?></td>
    <td><?php echo $JeuEnr['Prénom'] ;?></td>
    <td><?php echo $JeuEnr['Pays'] ;?></td>
    <td><?php echo $JeuEnr['Ville'] ;?></td>
    </tr>
    <?php
    } ?>
    </table>

  4. #4
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Alors tester après le formulaire :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
    if(isset($_POST['btOk'])){
     
    $categorie=$_POST['liste'];
    $res=mysql_query("SELECT * FROM clients WHERE Ville = '$categorie'") or die(mysql_error());
    ?>
    <table border="1" align="center">
    <tr>
    <td>Nom</td>
    <td>Prénom</td>
    <td>Pays</td>
    <td>Ville</td>
    <?php While($JeuEnr=mysql_fetch_assoc($res)){
    ?>
    <tr>
    <td><?php echo $JeuEnr['Nom'] ;?></td>
    <td><?php echo $JeuEnr['Prénom'] ;?></td>
    <td><?php echo $JeuEnr['Pays'] ;?></td>
    <td><?php echo $JeuEnr['Ville'] ;?></td>
    </tr>
    <?php
    } ?>
    </table>
    <?php
    }?>

  5. #5
    Membre averti
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Ca marche, merci

  6. #6
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Super ! N'oublie pas le tag résolu

    A++

Discussions similaires

  1. Visibilité de mon tableau dans bloc try catch
    Par erox44 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 18/05/2010, 15h13
  2. Tableau exercice de tri
    Par lelouch_ dans le forum Débuter
    Réponses: 9
    Dernier message: 01/11/2009, 18h35
  3. Utilisation d'un script de tri/filtrage de tableau html
    Par Seb33300 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/08/2007, 18h05
  4. [Map] Tableau d'association trié par ordre d'insertion
    Par sanchou dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 27/04/2007, 12h18
  5. tableau de pointeur+tri+coup de pouce svp
    Par php4life dans le forum C
    Réponses: 12
    Dernier message: 15/04/2006, 13h49

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