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 :

Formulaire de Recherche Multicritères


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Meewix
    Invité(e)
    Par défaut Formulaire de Recherche Multicritères
    Bonsoir à tous les noctures,

    Je souhaite faire une recherche multicritères mais je ne sais pas trop comment gérer ceci sous PHP/MySQL.

    J'ai fait mon formulaire (le plus facile à faire) que voici :
    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
    64
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title></title>
    </head>
     
    <body>
    <form name="FormSearch" method="post" action="result.php">
      <p>
        Prix : 
        <select name="prix" id="prix">
          <option value="100000">- de 100 000</option>
          <option value="300000">de 100 000 &agrave; 300 000</option>
          <option value="700000">de 300 000 &agrave; 700 000</option>
        </select>
    </p>
      <p>Surf 1 
        <select name="surf01" id="surf01">
          <option value="50">- 50</option>
          <option value="70">de 50 &agrave; 70</option>
          <option value="100">de 70 &agrave; 100</option>
        </select>
    </p>
      <p>Surf 2 
        <select name="surf02" id="surf02">
          <option value="100">- 100</option>
          <option value="300">de 100 &agrave; 300</option>
          <option value="301">+ 300</option>
            </select>
    </p>
      <table width="200">
        <tr>
          <td>Nb pi&egrave;ces </td>
        </tr>
        <tr>
          <td><label>
            <input type="radio" name="pieces" value="1">
            1</label></td>
        </tr>
        <tr>
          <td><label>
            <input type="radio" name="pieces" value="2">
            2</label></td>
        </tr>
        <tr>
          <td><label>
            <input type="radio" name="pieces" value="4">
            3</label></td>
        </tr>
        <tr>
          <td><label>
            <input type="radio" name="pieces" value="5">
            5</label></td>
        </tr>
        <tr>
          <td><label>
            <input type="radio" name="pieces" value="6+">
            6+</label></td>
        </tr>
      </table>
    </form>
    </body>
    </html>
    Ensuite le fichier PHP pour afficher le résultat, enfin le début car après je ne sais pas mais je veux bien qu'on me guide :
    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
    <?php
    require("./../pass/config.inc.php");
    require("./../admin/fonction.php");
     
    // connexion à la base
    $db = mysql_connect($HostName, $UserName, $UserPass) or die ('Erreur de connexion '.mysql_error());
     
    // sélection de la base  
    mysql_select_db($MysqlBdd,$db) or die ('Erreur de selection '.mysql_error());
     
    // requête SQL qui récupère tous les enregistrements
    $select = 'SELECT * FROM annonces WHERE publi="oui" ORDER BY date_ins DESC';
    $result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
    .
    .
    .
    .
    .
    .
    Merci pour aide

    Meewix

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 106
    Par défaut
    Si je comprends bien, tu cherches à sortir de ta bdd les éléments qui correspondent aux données envoyées par ton formulaire ?

    Je suis assez novice, mais moi je chercherais à formuler directement la requête en fonction des infos transmises.

    Genre :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $strSQL = 'SELECT * FROM annonces WHERE publi="oui"';
     
    switch($_POST['prix']) {
    case 100000 : $strSQL.=' && prix<"100000"';break;
    case 300000 : $strSQL.=' && ...';break;
    case 700000 : $strSQL.=' && ...';break;
    default : echo "error";
    }
     
    //idem pour chacun des input de ton form. Pour au final asser la requête.
    requete_SQL($strSQL);

    Voilà, j'espère que je t'ai aidé. Mais peut-être que des personnes plus qualifiées sauront faire mieux

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Le principe est bon : compléter la requête avec les différents paramètres. Après, si tu peux éviter les switch, surtout pour de petits nombres de cas, tu gagneras du temps d'exécution.
    Un conseil : fais un echo de ta requête après chaque ajout de paramètre, pour vérifier qu'elle est valide (parenthèses bien refermées, virgules au bon endroit...). Il est facile de se tromper quand on construit une requête avec des conditions.

  4. #4
    Meewix
    Invité(e)
    Par défaut
    Bonsoir,

    Je reviens en force pour en finir avec ceci

    Bon j'ai pas tout compris et si vous pouvez me guider ça serait top, car ça me prend bien le crâne.

    Lorsque tu dis "formuler directement la requête" ça sous entend quoi ?
    De ne pas faire comment j'ai commencé avec mes 2 fichiers, un pour le Form et l'autre qui affiche les résultats ?

    Merci pour votre aide

  5. #5
    Membre émérite
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Par défaut
    tu veux faire ta recherche dans la base de données en triant sur quels champs ?

    les champs de ton formulaire sont-ils tous obligatoires ou peuvent-ils être absents ? l'utilisateur peut-il n'en avoir rempli aucun ?

    ... ?
    Dia [ Page DVP ] [ Site pro ]

  6. #6
    Meewix
    Invité(e)
    Par défaut
    'soir

    En fait je veux faire une recherche dans ma base de données MySQL sous PHP, une recherche toute simple :

    Les champs sont des SELECT donc obligatoire.

    Recherche un "prix" :
    • -10 000€
    • 10 001 et 20 000
    • 20 001 et 30 000
    • etc.

    couplé au "type" :
    • voiture
    • moto
    • vélo
    • etc.


    et qu'il me sorte les annonces en questions
    Je pense que c'est tout con mais je pige pas comment le faire.

    Voilou

    Merci pour l'aide

Discussions similaires

  1. [MySQL] Formulaire de recherche multicritères
    Par yanng dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/03/2008, 09h47
  2. Réponses: 3
    Dernier message: 21/09/2006, 11h59
  3. Formulaire de recherche multicritère Access 2003
    Par Mimi64 dans le forum Access
    Réponses: 1
    Dernier message: 19/07/2006, 12h21
  4. Formulaire de recherche multicritères
    Par dolf13 dans le forum Langage
    Réponses: 10
    Dernier message: 20/06/2006, 23h24
  5. Formulaire de recherche multicritères
    Par Michel DELAVAL dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 09h32

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