Requête avec OR et AND

Résolu/Fermé
toprod Messages postés 46 Date d'inscription samedi 13 février 2010 Statut Membre Dernière intervention 20 mars 2021 - 12 janv. 2014 à 11:45
toprod Messages postés 46 Date d'inscription samedi 13 février 2010 Statut Membre Dernière intervention 20 mars 2021 - 12 janv. 2014 à 21:48
Bonjour,

Je suis entrain de développé un site en php mais je me heurte à un problème auquel je ne trouve pas de solution.

Je souhaite faire un module de recherche permettent de choisir plusieurs options.

Voici la requéte que je souhaite faire :

SELECT * FROM ventes  WHERE  id_vendeur = '1'  AND marque LIKE '%".secure($_POST['recherche_mot'])."%' OR model LIKE '%".secure($_POST['recherche_mot'])."%'


Seulement de cette façon il ne prend en compte que le OR model LIKE '%".secure($_POST['recherche_mot'])."%'

J'imagine qu'il y à une astuce pour faire ce genre de chose mais la quel ?

Merci d'avance pour votre aide.

4 réponses

mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
12 janv. 2014 à 13:34
Bonjour,

Simple factorisatio selon algèbre de BOOLE, il vous faut des parenthèses:

AND s'écrit .
OR s'écrit +

A . ( B + C)

n'est pas équivalent à

(A . B) + C

Vous avez saisi?

Donc,

SELECT * FROM ventes  
WHERE  id_vendeur = '1'  
    AND (marque LIKE '%".secure($_POST['recherche_mot'])."%' OR model LIKE '%".secure($_POST['recherche_mot'])."%')


A+
1
Je crois que le OR et le AND doivent aller après le LIKE, essais voir.
0
toprod Messages postés 46 Date d'inscription samedi 13 février 2010 Statut Membre Dernière intervention 20 mars 2021 3
12 janv. 2014 à 21:48
Merci beaucoup pour vos réponses.

J'ai effectivement fait de cet manière mpmp93 et c'était bien la solution.

Encore merci pour votre aide ce sujet est donc résolus :)
0