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 :

Module de Recherche (avec plusieurs champs) [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Points : 57
    Points
    57
    Par défaut Module de Recherche (avec plusieurs champs)
    Bonjour à tous !!!
    Alors voila je vous expose mon problème !
    Je dois réaliser une petite application web (assez rapidement lol) pour gérer des saisies et la visualisation de concours !
    Alors voila j'aurais besoin d'aide au niveau du coté utilisateur pour la recherche des concours !
    Vu que dans ma recherche est basé selon plusieurs champs !
    En tenant compte d'un Champs "Tous" pour pouvoir afficher tous les concours ! mais mon soucis viens pour pouvoir afficher les concours selon chaque champs sachant que certain pourront resté à "Tous".

    Voici un exemple de mon bout de code pour le formulaire de recherche que j'appelle search.php


    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
    <form method="post" class="myform" action="searching.php">
     
    <?php
     
     include("b2d.php");
     
     $b2d = cnx();
    ?>
     
    <label>Administration Organisatrice :</label> 
     
    <?php
     
    $sql = 'SELECT * FROM ministere'; 
     
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    echo '<select name="ministere">';
    echo '<option value="Toutes">Toutes</option>';
     
    while($data = mysql_fetch_assoc($req)) 
        { 
     
    echo '<option value="'.$data['id_ministere'].'">'.$data['nom_ministere'].'</option>'; 
        } 
     
    echo '</select>';
     
     
    ?>
     
    </br>
     
    <label>Catégorie :</label> 
     
    <?php
     
    $sql = 'SELECT * FROM categorie'; 
     
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    echo '<select name="categorie">';
    echo '<option value="Toutes">Toutes</option>';
     
    while($data = mysql_fetch_assoc($req)) 
        { 
     
        echo '<option value="'.$data['num_categorie'].'">'.$data['nom_categorie'].'</option>'; 
        } 
     
    echo '</select>';
     
     
    ?>
    </br>
    On dira que d'autre champs suivront encore genre diplome nom de concours type de concours ... etc ...

    et voila un début de code pour mon searching.php mais avec erreur lol ca c sur mais c'est pour avoir une idée

    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
    <?php
     
    $ministere=$_POST['ministere'];
    $categorie=$_POST['categorie'];
    $diplome=$_POST['diplome'];
    $concours=$_POST['concours'];
     
     include("b2d.php");
     
     $b2d = cnx();
     
    if($_POST['ministere'] == 'Toutes' && $_POST['categorie'] == 'Toutes' && $_POST['diplome'] == 'Tous' && $_POST['concours'] == 'Tous') {
     
    $result = mysql_query("SELECT * FROM avis_concours");
     
    	while($row=mysql_fetch_row($result))
         { 
    	    print_r($row); 
     
         }  
     
    } 
                // TEST POUR CHAMPS ADMINISTRATION ORGANISATRICE SELECTIONNE (MINISTERE)
     
    $result1 = mysql_query("SELECT * FROM avis_concours WHERE $ministere = avis_concours.id_ministere");
     
    	while($row2=mysql_fetch_row($result1))
         { 
    	    print_r($row2); 
     
         } 
     
     
    ?>

    Voila il y a t'il quelqu'un pour me donner un ptit coup de pouce

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Salut,
    Je pense avoir compris ton soucis. Je te propose une solution non exhaustive :
    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
    <?php
     
    $ministere=$_POST['ministere'];
    $categorie=$_POST['categorie'];
    $diplome=$_POST['diplome'];
    $concours=$_POST['concours'];
     
    include("b2d.php");
     
    $b2d = cnx();
     
    if($ministere == 'Toutes' && $categorie == 'Toutes' && $diplome == 'Tous' && $concours == 'Tous')
    {
    $result = mysql_query("SELECT * FROM avis_concours");
    while($row=mysql_fetch_row($result))
    {
    print_r($row);
    }
    }
    else
    {
    // TEST POUR CHAMPS ADMINISTRATION ORGANISATRICE SELECTIONNE (MINISTERE)
    $requete  = "SELECT * FROM avis_concours WHERE";
    switch($ministere)
    {
    case 'Toutes' :
    break;
    default :
    $requete  .= ' id_ministere='.$ministere.' AND';
    break;
    }
     
    switch($categorie)
    {
    case 'Toutes' :
    break;
    default :
    $requete  .= ' num_categorie='.$categorie.' AND';
    break;
    }
     
    //La même chose avec diplôme et concours
    //(...)
     
    $length = strlen($requete)-4; //4 caractères pour " AND"
    $requete=substr($requete, 0, $length); //on enlève le dernier " AND"
     
    $result1 = mysql_query($requete);
     
    while($row2=mysql_fetch_row($result1))
    {
    print_r($row2);
     
    }
     
     
    ?>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Points : 57
    Points
    57
    Par défaut
    !!!!
    Yep !! Thank a lot fucce pour ta solution !!!
    C'est vrai j'aurai du y penser au switch !!!!
    Encore Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2014, 22h48
  2. [SQL] Recherche avec plusieurs possibilités pour un champ
    Par jeronimo83 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/07/2008, 15h27
  3. Réponses: 2
    Dernier message: 30/11/2004, 09h42
  4. Réponses: 3
    Dernier message: 19/11/2004, 21h48
  5. liste deroulante avec plusieurs champs
    Par JulienT dans le forum Struts 1
    Réponses: 4
    Dernier message: 20/04/2004, 17h17

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