8791 sujets

Développement web côté serveur, CMS

Bonjour,

j'ai un problème avec une requête MySQL. J'ai une table qui contient plusieurs enregistrements, dont les champs "nom", "prenom" et "e_mail". Je souhaite inclure un petit moteur de recherche, et je suis arrivé à ceci :

HTML :

<select name="champ">
    <option value="nom">nom</option>
    <option value="prenom">prénom</option>
    <option value="e_mail">e-mail</option>
</select>
<input type="text" name="value" />


PHP :

$query = "SELECT * FROM abonnes WHERE $champ LIKE '%$value%' AND groupe = '$group'";


Seulement, j'aimerais me débarrasser de la liste déroulante pour chercher dans les 3 champs "nom", "prenom" et "e_mail" à la fois. Je pensais écrire ma requête ainsi :

PHP :

$query = "SELECT * FROM abonnes WHERE (nom OR prenom OR e_mail LIKE '%$value%') AND groupe = '$group'";


Je n'ai pas d'erreur, mais la base ne me retourne pas ce que j'attends (apparemment un seul résultat si je cherche un nom ou un prénom, et tous les résultats si je cherche un e-mail).

Je m'y prends sûrement mal, quelqu'un a une idée ? Smiley sweatdrop
Modifié par lionel (07 Jan 2008 - 19:05)
PHP :

$query = "SELECT * FROM abonnes WHERE (nom LIKE '%$value%' OR prenom LIKE '%$value%' OR e_mail LIKE '%$value%') AND groupe = '$group'";


Sans l'opérateur "LIKE", nom et prenom étaient considérés comme des booléens !

Smiley smile
Modifié par lionel (07 Jan 2008 - 19:10)