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 :

Filtre multiple sur une colonne [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Par défaut Filtre multiple sur une colonne
    Bonjour,
    Je désire filtrer un ensemble avec deux ou 3 critères.
    Je m'explique:
    Je veux la liste des personnes dont le nom commence par ADJ ou VEI
    voici mon code:
    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
     
    <a href="newabs.php">Revenir à la page des modifications globales</a>
    <form action="newabs.php" method="post"><br>
    <input type="text" onFocus="motclef.style.backgroundColor='yellow'"
      onBlur="motclef.style.backgroundColor='white'" name="motclef" value="<?php echo $_REQUEST['$motclef1%']; ?>">
    <input type="text" onFocus="motclef.style.backgroundColor='yellow'"
      onBlur="motclef.style.backgroundColor='white'" name="motclef" value="<?php echo $_REQUEST['$motclef2%']; ?>">  
     
    <input type="submit" value="1) Rechercher un élève par le nom (ou tapez les 3 premières lettres), par le numéro de l'absence ou par la classe OU cliquez sur ce bouton pour avoir TOUS les élèves"><br>
    </form>
     
     
    <table border="1">
    <tr>
    <td width=''>NOM</td>
    <td width=''>PRENOM</td>
    <td width=''>CLASSE</td>
    <td width=''>JUSTIFICATION</td>
    <td width=''>Justifiée & légitime ?</td>
    <td width=''><b>Quand</b></td>	
    <td width=''>de</td>
    <td width=''>A</td>
    <td width=''>Total</td>	  
    <td width=''>Numéro</td>
    </tr>
     
    <?php 
     
     
    if (isset($motclef1)  or isset($motclef2) )
    {
    $dateencours=$motclef1;
     $clause = " WHERE elenom like '$motclef1%' or elenom like '$motclef2%' or elenom like '$motclef1%' or Numero like '$motclef1%' or divcod like '$motclef1%' ";
    }
    $orderby = " ORDER BY elenom";
    $sql = "SELECT * FROM ges_abs " . $clause . $orderby;
    $resultat = mysql_query ($sql);
    echo $sql;
    echo '';
     
    while ($eleve = mysql_fetch_array ($resultat))
     
    {
    suite du code bien sûr......
    Si je fais un seul $motclef, cela marche mais sur 1 critère
    comment avoir sur les deux noms par ex ? en espérant être clair....
    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Par défaut Filtrage
    bonjour
    pas d'idée à me proposer ?
    merci

  3. #3
    Membre Expert Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Par défaut
    Bonjour,

    il te suffit d'utiliser des or dans ta requete where

    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from MATABLE where (NAME like 'abc%' or NAME like 'def%')

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Par défaut oui mais..
    merci pour cette réponse mais ce n'est pas valable: mes données viennent d'un champ de saisie, et dans ce cas de 2 champs (ou plus si c'est possible)
    Je veux la liste des personnes dont le nom commence par adj OU vei (ok pour le or) mais avec deux champs de saisie...

  5. #5
    Membre Expert Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Par défaut
    Dans ce cas la, tu gere tes inputs au niveau du html

    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form>
    <input name="nameEmp[]" />
    <input name="nameEmp[]" />
    <input name="nameEmp[]" /> // tu peux le faire avec x valeur
    </form>
    et coté php pour le traitement tu fais ta boucle sur $_GET['nameEmp'] (ou $_POST)

    avec cette boucle tu peux générer ta requete avec quelque chose dans l'esprit suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $whereTab = array();
    foreach ($_GET['nameEmp] as $name)
    {
      $whereTab []=  "name like '%" . $name . "%'";
     
    }
     
    $where = implode(" or ", $whereTab);

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Par défaut pas très clair (pour moi...)
    merci pour ce bout de code mais je ne vois pas trop ou le mettre avec le mien...

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

Discussions similaires

  1. [D7] Filtre sur une colonne d'un TStringGrid
    Par Charly910 dans le forum Débuter
    Réponses: 4
    Dernier message: 03/07/2009, 19h19
  2. mettre un filtre sur une colonne + listebox
    Par nabelou1 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/03/2009, 12h57
  3. Réponses: 6
    Dernier message: 12/12/2008, 06h56
  4. Réponses: 4
    Dernier message: 30/09/2008, 15h44
  5. [VB.Net/Dataview] Comment gérer un filtre sur une colonne de type date ?
    Par silatchom dans le forum Accès aux données
    Réponses: 3
    Dernier message: 07/07/2006, 19h28

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