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. 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 ?
    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"] . "%'");
      }
      1. $HTTP_POST_VARS grrrr... ;-)
      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
    2. 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
      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
        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
          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
            1. $HTTP_POST_VARS est obsolète, ne plus l'utiliser (d'après la doc PHP de chez PHP)
              utiliser $_POST
              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"] . "%'");