Hello,
essai comme ça pour voir (pas testé de mon côté ;) )
$query .= " WHERE dbproduct.name LIKE '%?%' OR dbproduct.adress LIKE '%?%' OR dbproduct.city LIKE '%?%' ";
$req = $this->bdd->prepare($query);
$req->execute(array($_GET['field']));
Bonjour,
Je souhaite mettre en place une recherche de mot clé dans plusieurs colonne de ma table.
La requête fonctionne bien, mais une fois que le premier élément de mon tableau fait il me lance une erreur de syntaxe SQL.
Le var_dump me renvoie les bonnes infos mais uniquement sur la première boucle. Dès qu'il entame la seconde, erreur de syntaxe.
Merci par avance pour votre aide.
Hello,
essai comme ça pour voir (pas testé de mon côté ;) )
$query .= " WHERE dbproduct.name LIKE '%?%' OR dbproduct.adress LIKE '%?%' OR dbproduct.city LIKE '%?%' ";
$req = $this->bdd->prepare($query);
$req->execute(array($_GET['field']));
Bonjour.
Tu as l'erreur, car tu ne peux pas avoir l'instruction WHERE qu'une seule fois, par conséquent il te faut donc par exemple remplacer par :
Rho Lartak tu veux te marier avec moi?
Ca fonctionne parfaitement.
Voici le code final, les recherches se font sur toutes les colonnes. YOUPI
Tant mieux si j'ai pu t'aider.
Par contre, tu places l'initialisation, l'exécution et la récupération de ta requête SQL dans la mauvaise partie, il te faut les placer en dehors de la condition si tu veux que ta requête SQL soit toujours fonctionnelle.
Oui j'avais vu ça, j'ai corrigé pour que la boucle ne concerne que le contenu de la requête et non la requête en elle même.
Encore merci.
Bien que pour plus de logique, tu devrais utiliser soit la méthode prepare soit la méthode query selon le cas, par exemple: