par
Spols » 15 nov. 2016, 16:18
Affiche ta requète, tu verra très vite qu'elle est incomplète
Il manque une clause WHERE et les mots clé LIKE
ton like doit aussi etre inclu dans ta requète et pas ajouter au résultat de celle ci.
J'ai un doute également sur le nom de ton champs recettes dans ta table recettes, ne faut il pas chercher dans les nom ?
à mon avis, ceci serait mieux
<?php
$keywords = $_POST["keywords"];
// Je teste pour savoir si j'ai quelque chose dans POST
if(isset($keywords) && !empty($_POST)) {
// J'ai quelque chose donc je peux continuer
// Je commence à séparer les différents mots clés
$keywords = explode(' ', $keywords);
// J'initialise ma variable pour la requête SQL
$like = "";
foreach($keywords as $keyword) {
// Si le mot clé est supérieur à 3 caractères (tu n'es pas obligé)
if(strlen($keyword) >= 3) {
// Je concatène
// Le % en SQL est un joker, ça remplace n'importe quel caractère.
$like.= " nom LIKE '%".$keyword."%' OR";
}
}
// Je retire le dernier OR qui n'a pas lieu d'être
$like = substr($like, 0, - 3);//petit plus, pas besoin de calculer la longueur de la chaine, substr sait le faire aussi
$req = mysql_query("SELECT nom FROM recettes WHERE ".$like);
while( $result = mysql_fetch_array( $req ) )
{
echo $result['nom'].'<br/>';
}
} else {
// Je n'ai rien, j'informe l'utilisateur
die('Veuillez saisir quelque chose dans le champs de recherche.');
}
?>
Affiche ta requète, tu verra très vite qu'elle est incomplète
Il manque une clause WHERE et les mots clé LIKE
ton like doit aussi etre inclu dans ta requète et pas ajouter au résultat de celle ci.
J'ai un doute également sur le nom de ton champs recettes dans ta table recettes, ne faut il pas chercher dans les nom ?
à mon avis, ceci serait mieux
[php]<?php
$keywords = $_POST["keywords"];
// Je teste pour savoir si j'ai quelque chose dans POST
if(isset($keywords) && !empty($_POST)) {
// J'ai quelque chose donc je peux continuer
// Je commence à séparer les différents mots clés
$keywords = explode(' ', $keywords);
// J'initialise ma variable pour la requête SQL
$like = "";
foreach($keywords as $keyword) {
// Si le mot clé est supérieur à 3 caractères (tu n'es pas obligé)
if(strlen($keyword) >= 3) {
// Je concatène
// Le % en SQL est un joker, ça remplace n'importe quel caractère.
$like.= " nom LIKE '%".$keyword."%' OR";
}
}
// Je retire le dernier OR qui n'a pas lieu d'être
$like = substr($like, 0, - 3);//petit plus, pas besoin de calculer la longueur de la chaine, substr sait le faire aussi
$req = mysql_query("SELECT nom FROM recettes WHERE ".$like);
while( $result = mysql_fetch_array( $req ) )
{
echo $result['nom'].'<br/>';
}
} else {
// Je n'ai rien, j'informe l'utilisateur
die('Veuillez saisir quelque chose dans le champs de recherche.');
}
?>[/php]