Requete SQL pr Recherhce Multi

Résolu
Bonjour,
Voila je cherche une requête Sql ( pour mouteur de recherche ) avec 3 critère ( Mots clé , Catégorie, région) .
je sais y'a une requête du style :
$requete. = (....);
$requete.= ( suite .. )
mais j'en sais pas plus .
merci de rependre
Configuration: Windows Vista
Safari 525.13

4 réponses

  1. Salut,

    je ne suis pas sur de comprendre,
    $sql = "SELECT * FROM articles WHERE keyword='".$keyword."' AND WHERE categorie='".$cat."' AND WHERE region='".$region."';
    

    Un truc comme ça ?
    0
    1. slt;
      la requête que je cherche et plus compliqué : 3 critère donc plusieurs combinaison possible :
      je récupère les valeur des 3 champs avec POST donc les combinaison possible sont :
      champ 1
      champ 1 + champ 2
      champ 1+ champ 3
      champ 1 + champ 2 + champ 3
      champ 2 + champ 3
      0
      1. Si j'ai compris, tu peux faire ainsi :

        if(isset($_POST['keyword'])){
           $where .= " WHERE keyword='".$_POST['keyword']."'"
        }
        if(isset($_POST['categorie'])){
           $where .= " WHERE keyword='".$_POST['categorie']."'"
        }
        if(isset($_POST['region'])){
           $where .= " WHERE keyword='".$_POST['region']."'"
        }
        
        $sql = "SELECT * FROM articles".$where;
        
        
        
        0
        1. Je me permet de corriger l'exemple donné ci-dessus par :

          $where = "WHERE 1=1";
          
          if(isset($_POST['keyword'])){
             $where .= " AND keyword LIKE '%".mysql_real_escape_string($_POST['keyword'])."%'";
          }
          if(isset($_POST['categorie'])){
             $where .= " AND categorie LIKE '%".mysql_real_escape_string($_POST['categorie'])."%'";
          }
          if(isset($_POST['region'])){
             $where .= " AND region LIKE '%".mysql_real_escape_string($_POST['region'])."%'";
          }
          
          $sql = "SELECT * FROM articles".$where;
          0
      2. Merci beaucoup les gars pour votre aide.
        ça marche
        0