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 :

Filtrer les résulats d'une table


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Par défaut Filtrer les résulats d'une table
    Bonjour à tous,
    voilà, je dispose d'une page php qui permet d'afficher les enregistrements d'une table à travers une requête SELECT.
    Jusque là tout va bien, maintenant sur cette même page , à la fin de la table des résultats de la requête , j'ai mis un petit formulaire (Liste déroulante et un bouton submit) pour permettre de soumettre une requête afin de filtrer les enregistrements de la table, et permettre un nouvel affichage selon la valeur de la liste déroulante choisie.
    Je ne sais pas comment faire pour afficher les données filrées dans la même page , au lieu d'avoir les résulats non filtrés.
    Voici le code PHP de ma page :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
    // information pour la connection à la DB
    $host = 'localhost';
    $user = 'root';
    $pass = 'mysql';
    $db = 'gdi';
     
    // connection à la DB
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
    // requête SQL qui compte le nombre total d'enregistrement dans la table et qui
    //récupère tous les enregistrements
    $select = 'SELECT num_int,date,heure,structure,service,section,demandeur,tel,code_bureau,type_equip,cat_interv,description FROM di_attente where etat="en attente"';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // debut du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
            echo '<td bgcolor="#669999"><b><u>num_int</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>date</u></b></td>';
          echo '<td bgcolor="#669999"><b><u>heure</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>structure</u></b></td>';
           echo '<td bgcolor="#669999"><b><u>service</u></b></td>';
    	  //echo '<td bgcolor="#669999"><b><u>section</u></b></td>' ;
          echo '<td bgcolor="#669999"><b><u>demandeur</u></b></td>' ;
          echo '<td bgcolor="#669999"><b><u>tel</u></b></td>' ;
          //echo '<td bgcolor="#669999"><b><u>code_bur</u></b></td>' ;
          echo '<td bgcolor="#669999"><b><u>type_equip</u></b></td>' ;
          echo '<td bgcolor="#669999"><b><u>cat_interv</u></b></td>' ;
          echo '<td bgcolor="#669999"><b><u>description</u></b></td>' ;
          echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
            echo '<tr>';
            echo '<td bgcolor="#CCCCCC"><a href="gdi_detail.php?num_int='.$row["num_int"].'">'.$row["num_int"].'</a></td>';
            echo '<td bgcolor="#CCCCCC">'.$row["date"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["heure"].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row["structure"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["service"].'</td>';
    	  //echo '<td bgcolor="#CCCCCC">'.$row["section"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["demandeur"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["tel"].'</td>';
          //echo '<td bgcolor="#CCCCCC">'.$row["code_bureau"].'</td>';
         echo '<td bgcolor="#CCCCCC">'.$row["type_equip"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["cat_interv"].'</td>';
         echo '<td bgcolor="#CCCCCC">'.$row["description"].'</td>';
        echo '</tr>'."\n";
    	}
    	echo '</table>'."\n";
        // fin du tableau.
    }
    else echo ' table vide...';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>
    et voici ce que j'ai rajouté à la fin de la page (aprés affichage des résultats de la requête dans un tableau) :
    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
     <div class="Style1">
            <table width="845" border="1" bgcolor="#DDE7E8">
      <tr>
        <td width="685"><p><strong>Options de filtrage des DI en attente : </strong></p>
          <form id="form2" name="form2" method="post" action="">
            Veuillez choisir  une catégorie d'intervention :
              <select name="filtre" id="filtre">
                <option value="support">Support(Maintenance)</option>
                <option value="réseau">Réseau</option>
                <option value="dba">DBA (Bases de données)</option>
                <option value="tout">Tout</option>
              </select>
              <input type="submit" name="filtreBtn" id="filtreBtn" value="Filtrer" />
          </form>      <p>&nbsp;</p></td>
      </tr>
    </table>
     
            <p>&nbsp;</p>
          </div>
    Merci de m'aider, vous m'enlèveriez une grosse grosse grosse épine du pied (Plutôt de la main vu que je programme avec )

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut ajouter une clause WHERE à ta requête avec les conditions du filtre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Il faut ajouter une clause WHERE à ta requête avec les conditions du filtre.
    ça je l'avais compris, mais comment faire passer la valeur à la requête??

  4. #4
    Membre éclairé Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Par défaut
    En fait le code php il fait partie intégrante de ma page (dans laquelle les résultats sont affichés) en plus, à l'ouverture de la page, les enregistrements affichés ne doivent pas être filtrés (l'exécution du script PHP SE FAIT SANS OPTION DE FILTRAGE) c'est l'utilisateur qui choisi de filtrer ou pas.

    Je crois que tout ça tourne autour de action du formulaire , mais je ne sais pas comment faire???

    pourriez vous m'aider avec du code????

  5. #5
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    tu récupères les valeurs de tes listes déroulantes et tu rappelles ta requete en utilisant un filtre (=, IN...)

  6. #6
    Membre éclairé Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Bonjour,

    tu récupères les valeurs de tes listes déroulantes et tu rappelles ta requete en utilisant un filtre (=, IN...)
    Excusez moi si j'insiste mais je suis sur le forum débutant, c'est à dire que techniquement je n'ai pas pu le faire !!!

    En fait je ne sais pas quelle action attribuer à mon formulaire de filtre !! en sachant que le code PHP pour la requête de sélection est intégré à la page du formulaire , alors dans l'attribut ACTION du formulaire je devrais reprendre le nom du fichier lui même?? c'est à dire : gdi_admin.php

    et puis quelle méthode??? un POST ou un GET??

    JE ne sais pas comment faire passer la valeur de la liste à la requête !!!

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

Discussions similaires

  1. [Débutant] VB filtrer les données d'une table
    Par didi20033 dans le forum VB.NET
    Réponses: 3
    Dernier message: 08/12/2011, 09h50
  2. Réponses: 2
    Dernier message: 16/11/2009, 23h23
  3. Réponses: 1
    Dernier message: 22/11/2007, 04h47
  4. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31
  5. Afficher tous les champs d'une table avec dbexpress et MySQL
    Par LHT dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2004, 17h11

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