Page 1 sur 1

Chercher dans plusieurs champs

Posté : 24 sept. 2007, 00:46
par jpsartre
Bonjour,

Je voulais chercher dans plusieurs champs avec cette requête :
		case 'Rechercher News':
$query = "SELECT * FROM news WHERE marque+titre+resume+description LIKE '".$recherche."%' AND genre='1' ORDER BY id ASC";
		$result = mysql_query($query);
	break;
Mais cela ne doit pas être la bonne syntaxe. Est-ce seulement possible ?

Merci,

Posté : 24 sept. 2007, 03:23
par Truc
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".


Même si tu es en présence de code PHP le problème reste du SQL.

Plusieurs sujet parlent de moterus de recherche utilisant les "OR/AND LIKE"
La bonne syntaxe serait donc :

Code : Tout sélectionner

WHERE champ1 LIKE'' OR/AND champ2 LIKE '' ...
Regarde aussi du coté de la recherche "full text".

Posté : 24 sept. 2007, 10:45
par jpsartre
Merci d'avoir déplacé le sujet,
Je viens d'essayer :
		case 'Rechercher News':
$query = "SELECT * FROM opticien_news WHERE marque LIKE '%".$recherche."%' OR titre LIKE '%".$recherche."%' OR resume LIKE '%".$recherche."%' OR description LIKE '%".$recherche."%' AND genre='1' ORDER BY id ASC";
		$result = mysql_query($query);
	break;
Alors ça marche bien pour ce qui est de la recherche, sauf qu'il m'affiche aussi dans les résultats les enregistrement ayant pour valeur genre='2' et genre='1' alors que j'ai bien noté AND genre='1'

Quelqu'un peut-il m'expliquer cela ?

Merci,

Posté : 27 sept. 2007, 19:47
par bercy
Bonsoir, essaye avec des parentheses
case 'Rechercher News': 
$query = "SELECT * FROM opticien_news WHERE (marque LIKE '%".$recherche."%' OR titre LIKE '%".$recherche."%' OR resume LIKE '%".$recherche."%' OR description LIKE '%".$recherche."%') AND genre='1' ORDER BY id ASC"; 
        $result = mysql_query($query); 
    break;