Requette Mysql multiple

malabarbe -  
phil232 Messages postés 610 Statut Membre -
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. phil232 Messages postés 610 Statut Membre 178
     
    $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
  2. le père
     
    $HTTP_POST_VARS est obsolète, ne plus l'utiliser (d'après la doc PHP de chez PHP)
    utiliser $_POST
    0
  3. malabarbe
     
    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
  4. phil232 Messages postés 610 Statut Membre 178
     
    comprends pas. il s'en fout du WHERE ? c'est ça ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. malabarbe
     
    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
  7. le père
     
    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
  8. malabarbe
     
    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
  9. phil232 Messages postés 610 Statut Membre 178
     
    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. le père
       
      $HTTP_POST_VARS grrrr... ;-)
      0
      1. phil232 Messages postés 610 Statut Membre 178 > 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
  10. malabarbe
     
    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