requete avec plusieurs champs imbriqués

Eléphanteau du PHP | 15 Messages

05 nov. 2005, 21:02

bonjour à tous ,
voila j'essaie de faire une requête sql dans une page en php avec mysql,,
le but etant de faire un tri sur plusieurs champs .

d'une part je sais faire des requêtes simples, donc la je coince :roll: !!

j'ai essayer d'imbriquer les requêtes mais ça ne marche pas ... d'après ce que j'ai compris les requêtes imbriquées ne fonctionnent pas avec mysql...

j'ai essayé les and et OR mais il me sort tous les résultats relatif à tous les champs demandés ...

voila le code en imbriqué :

Code : Tout sélectionner

$search="(SELECT * FROM (SELECT * FROM (SELECT * FROM tour WHERE region='$dord' OR region='$char' OR region='$limo') WHERE bedrooms>'$bed') WHERE price BETWEEN '$mini' AND '$maxi')";
avec ça j'ai une belle erreur sql


et l'essai avec des and et OR qui ne fonctionne pas :

Code : Tout sélectionner

$search="(SELECT * FROM tour WHERE bedrooms>'$bed' AND price>'$mini' OR price<'$maxi' OR region='$dord' OR region='$char' OR region='$limo')";
avec ça j'ai tous les enregistrement qui respectent certains champs mais pas d'autres ,le but et de ne garder que les enregistrements respectant tous les critères .

qqun pour me donner un coup de main !!! ?

merci
Modifié en dernier par matbio le 07 nov. 2005, 14:51, modifié 2 fois.

ViPHP
ViPHP | 1024 Messages

05 nov. 2005, 21:13

refais la dernière requete avec des AND à la place de OR dans le WHERE, ça devrait mieux marcher.

A+

Pascal

Eléphanteau du PHP | 15 Messages

05 nov. 2005, 21:21

Merci mais ça ne marche pas mieux ....

il me donne tous les resultats pouvant satisfaire un champs ou un autre mais pas les resultats exclusif à tous les champs demandés !!!!

et je viens d'essayer que des and et la y'a carrrément plus rien !!! :lol:

ViPHP
ViPHP | 1024 Messages

05 nov. 2005, 21:27

Merci mais ça ne marche pas mieux ....

il me donne tous les resultats pouvant satisfaire un champs ou un autre mais pas les resultats exclusif à tous les champs demandés !!!!

et je viens d'essayer que des and et la y'a carrrément plus rien !!! :lol:
ça veut dire qu'aucun enregistrement ne correspond à toutes les conditions données.

A+

Pascal

Eléphanteau du PHP | 15 Messages

05 nov. 2005, 21:34

En fait il me donne tous les enregistrements pouvant correspondre à une des conditions spécifiées, mais pas exclusivement les enregistrement répondant à
tous les critères demandés :
voila le resultat (pas comme je voudrais)d'une des requete):
requête effectuée
(SELECT * FROM tour WHERE bedrooms>='1' OR price>='0' AND price<='700000' AND region='dordogne'OR region='' OR region='')

résultat:
d45 100000 limousin 3
test1 50000 dordogne 3
n1112 200000 charente 8
donc la requete specifie bien qu'il n'y a que region=dordogne, mais vu qu'il se bas eaussi sur le reste et bien il me donne toutes les possibilités, alors que je ne voudrais que sur cet exemple l'enregistrement 2, vu que c'est le seul contenant dordogne, et que malgré les autres critère celui la bloque les autres enregistrements. la biensur j'ai retester des or et des and pour voir mais je ne pense pas que la solution soit la ??!!

j'espère me faire comprendre ;)

Mammouth du PHP | 19672 Messages

05 nov. 2005, 22:47

Tu peux utiliser des parenthèses:

Code : Tout sélectionner

SELECT * FROM tour WHERE (bedrooms>='1' OR price>='0') AND (price<='700000' AND (region='dordogne' OR region='' )) OR region='')
Ça, c'est juste un exemple, mais tu peux adapter.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 15 Messages

05 nov. 2005, 23:48

Je crois que j'ai fini par trouver, il fallait organiser un peu tout ça ...

$search="(SELECT * FROM tour
WHERE (price >='$mini' AND price <='$maxi')
AND (region='$dord' OR region='$char' OR region='$limo')
AND (bedrooms>='$bed') )";


merci pour le coup de main !!!

Mammouth du PHP | 19672 Messages

06 nov. 2005, 00:29

[Résolu] ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 15 Messages

07 nov. 2005, 14:49

OUi pardon !!!
merci encore pour l'aide !