Requette Mysql multiple

Bonjour,

Je suis devant un problème que je n'arrive pas a résoudre :

Voila j'ai une liste de livres dans ma base Mysql

Si je fait une requette sur la lettre A sur les titres, cela fonctionne.

Je voudrais faire une requette multiple c'est a dire :

Rechercher avec la requette des livres commancant par a et par r

Bien sur dans mon formulaire de demande j'ai fait un champ rech_1 et rech_2

voici mon code qui tourne pour rech_1, comment l'étendre pour qu'il
prenne en compte rech_2 ?

$Resultat = mysql_query("select nom,date1,VA1,HIP,DIST,Etat from produit where nom like '" . $HTTP_POST_VARS["rech_1"] . "%'");

Merci de votre aide

9 réponses

  1. $Resultat = mysql_query("select nom,date1,VA1,HIP,DIST,Etat from produit where nom like '" . $HTTP_POST_VARS["rech_1"] . "%' OR nom like '" . $HTTP_POST_VARS["rech_2"] . "%'");
    0
    1. $HTTP_POST_VARS est obsolète, ne plus l'utiliser (d'après la doc PHP de chez PHP)
      utiliser $_POST
      0
      1. Bonsoir,

        Merci de vos réponces

        Que j'utilise :
        $HTTP_POST_VARS ou $_POST cela donne le mème résultat

        En parlant de résultat, le code de Phil232 m'affiche toute la base
        mais pas les deux lettres sélectionnées

        Si vous voulez, je peut vous donner les sources et la base de donnée pour test

        A vous lire
        0
        1. comprends pas. il s'en fout du WHERE ? c'est ça ?
          0
          1. Bonjour,

            Je joint mon source qui tourne seulement avec une seule requette,
            voir si il est possible de l'adapter pou une double ou triple requette !

            <html>
            <BODY BGCOLOR=aqua>

            <p>
            <a href="sommaire.php">Retour</a>  
            <p>
            <center>
            <TABLE bgcolor='#DDF0D0' bordercolor='black' border=1 cellpadding=5>
            <tr>
            <th> Nom </th>
            <th> Date1 </th>
            <th> VA1 </th>
            <th> HYP </th>
            <th> DIST</th>
            <th> Etat </th>
            </tr>

            <?

            // Connexion à MySQL
            $Connexion = mysql_connect ("localhost", "root", "");
            if ($Connexion) {
            // Choix de la database
            if (mysql_select_db("produit") == false ) {
            echo ("Changement de base impossible <BR>");
            }

            // Exemple de SELECT
            $Resultat = mysql_query("select nom,date1,VA1,HIP,DIST,Etat from produit where nom like '" . $_POST["Rech_1"] . "%'");

            if ($Resultat)
            {
            if (mysql_num_rows($Resultat)> 0)
            {
            // Boucle de récupération des lignes résultat
            while($Ligne = mysql_fetch_array($Resultat))
            {

            ?>
            <tr>
            <td><?= $Ligne["nom"] ?></td>
            <td><center><?= $Ligne["date1"] ?></center></td>
            <td><center><?= $Ligne["VA1"] ?></center></td>
            <td><center><?= $Ligne["HIP"] ?></center></td>
            <td><center><?= $Ligne["DIST"] ?></center></td>
            <td><center><?= $Ligne["Etat"] ?></center></td>
            </tr>
            <?
            }
            }

            // Libération de la requête
            mysql_free_result($Resultat);
            }

            else {
            echo ("Requête incorrecte");
            }
            } else {
            echo ("Connexion impossible <BR>");
            }
            mysql_close ($Connexion);

            ?>
            </BODY>
            </html>

            Merci de regarder
            0
            1. Bonjour

              En parlant de résultat, le code de Phil232 m'affiche toute la base
              ça aurait dû marcher,tu n'avais sûrement rien mis dans rech_2
              0
              1. Oui, c'est la le problème

                Si un des deux champ se saisie est vide
                alors cela affiche tiute la base

                Il faidrais que cela tourne qu'il y ai une ou deux requette
                0
                1. allez, un petit effort quand-même

                  if ($_POST["Rech_2"]) == ''
                  {
                  $Resultat = mysql_query("select nom,date1,VA1,HIP,DIST,Etat from produit where nom like '" . $_POST["Rech_1"] . "%'");
                  }
                  else
                  {
                  $Resultat = mysql_query("select nom,date1,VA1,HIP,DIST,Etat from produit where nom like '" . $HTTP_POST_VARS["rech_1"] . "%' OR nom like '" . $HTTP_POST_VARS["rech_2"] . "%'");
                  }
                  0
                  1. $HTTP_POST_VARS grrrr... ;-)
                    0
                  2. @le pèreça vaaaaaaaa. il sera quand-même capable de taper qq fois sur delete pour enlever les carctères offensifs. s'il ne l'est pas, tant pis
                    0
                2. J'avais trouvé cela

                  // Si variables vides
                  if ($_POSTS["Rech_1"]==FALSE)
                  {$_POST["Rech_1"]="zzzzz";}

                  if ($_POST["Rech_"]==FALSE)
                  {$_POST["Rech_"]="zzzzz";}

                  Désolé pour le $HTTP_POST_VARS grrrr... ;-),

                  mais j'avais pris une ancienne source !!!

                  Quel code est le meilleur ?
                  0