Chercher dans plusieurs champs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Chercher dans plusieurs champs

par bercy » 27 sept. 2007, 19:47

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; 

par jpsartre » 24 sept. 2007, 10:45

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,

par Truc » 24 sept. 2007, 03:23

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".

Chercher dans plusieurs champs

par jpsartre » 24 sept. 2007, 00:46

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,