Forum Clubic

[sql/php]requete, like, boucle

salut tous le monde!!
mon idée et simple, mais la solution me parait impossible!!!
alors voilà, j’ai un tableau $cherche, avec differénte données en $cherche[0], $cherche[1], $cherche[2]…
$cherche dépend des données rentrées en $search
en gros $cherche = explode("+", $search);
inutile de préciser que le nombre de ligne en $cherche peut être variable!!!

je veux faire une recherche dans ma base de donnée qui me permet de récupérer les infos selon certain critère!!
(euh pas tès tès clair là, je le sens!)

en faite mon idée serait de faire un truc du genre :
$req = "SELECT url, titre FROM texte, mot, WHERE ID=ID_TEXTE AND Libelle like $cherche[0] AND Libelle like $cherche[1] AND Libelle like $cherche[2] …
ceci dit, ne sachant pas combien de $cherche on peut avoir, il faut donc que je remplace les 0,1,2,… par une variable!!!

Mais cela voudrait-il dire que je dois boucler dans ma requête, chose qui me parait impossible!!!!

Donc si quelqu’un pourrait m’éclairer sur une solution, je lui dit merci d’avance!!!

plutôt


$req = "SELECTurl, titre FROM texte, mot WHERE ID=ID_TEXTE";

for($i = 0; $i < count($chercher);$i++){
 $req .= " AND Libelle like '".$chercher[$i]."'";
}

Car sinon cela va ajouter à ta requête, la chaine “AND Libelle like $chercher[$i]” autant de fois qu’il y a d’éléments dans ton tableau.

Je dirais même plus :

$req = "SELECT url, titre FROM texte, mot WHERE ID=ID_TEXTE";
foreach($chercher as $critere) {
 $req .= ' AND Libelle LIKE \'' . $critere . '\''; // Utilise des single-quotes : c'est mieux
}

Selon d’où viennent les éléments de $chercher il faudra songer à utiliser mysql_escape_string() pour se protéger des injections SQL.