Jump to content
Sign in to follow this  
zimounet

Requete sql complexe en php

Recommended Posts

Bonjour @ tous,

Je sollicite votre aide pour écrire un requete sql en php que je n'arrive pas a écrire.

En fait, j'aurai besoin de parenthèse si ça existait, mais je ne sais meme pas si c'est possible, grosso modo ce serai un truc du genre:

SELECT * FROM table WHERE ((idcat1=$var1 OR idcat1=$var2 OR idcat1=$var3) OR (idcat2=$var1 OR idcat2=$var2 OR idcat2=$var3) OR (idcat3=$var1 OR idcat3=$var2 OR idcat3=$var3)) AND (prest=a or prest=b or prest=c)

Est ce que vous saisissez ce que je souhaite faire?

Il y a beaucoup trop de trucs a gérer, je n'y parviens vraiment pas...

Merci d'avance pour votre aide, n'hésitez pas à me signaler si il y a des choses à préciser

Share this post


Link to post
Share on other sites

petite précision: je n'utilise pas mysql 5 :)

Share this post


Link to post
Share on other sites
Bonjour @ tous,

Je sollicite votre aide pour écrire un requete sql en php que je n'arrive pas a écrire.

En fait, j'aurai besoin de parenthèse si ça existait, mais je ne sais meme pas si c'est possible, grosso modo ce serai un truc du genre:

SELECT * FROM table WHERE ((idcat1=$var1 OR idcat1=$var2 OR idcat1=$var3) OR (idcat2=$var1 OR idcat2=$var2 OR idcat2=$var3) OR (idcat3=$var1 OR idcat3=$var2 OR idcat3=$var3)) AND (prest=a or prest=b or prest=c)

Est ce que vous saisissez ce que je souhaite faire?

Il y a beaucoup trop de trucs a gérer, je n'y parviens vraiment pas...

Merci d'avance pour votre aide, n'hésitez pas à me signaler si il y a des choses à préciser

Pas trop :unsure:

Des AND et des OR c'est une table de veritée toute bete non ?

Share this post


Link to post
Share on other sites

arf, bah en fait, ma requete présente ce que je veux faire, en partant des meme regles de mathématiques avec les parenthèses... c'est pas simple a expliquer, mais la problématique est toute conne en fait.

Si vous voulez pour dans mon script, j'ai trois valeur: $var1 $var2 et $var3

Dans la table sur lequel je doit faire le SELECT, j'ai 3 champs différents: idcat1, idcat2 et idcat3

Je veux donc selectionner tous les enregistrements ayant pour valeur, le champs idcat1= l'une de mes trois variables, OU idcat2= une de mes trois variables OU idcat3= une de mes trois variables ET UNIQUEMENT quand au moins une des trois conditions précédente est vrai ET que presta=a OU que presta=b etc

Share this post


Link to post
Share on other sites

Au niveau logique ce que tu as ecrit me semble bon, maintenant au niveau SQL je laisse les autres se prononcer car ca depasse mes competences (je n'ai pas encore eu l'occasion d'utiliser des conditions un peu complexe...).

Share this post


Link to post
Share on other sites

il faut bien mettre entre parenthèses les expressions entre chaque condition

par exemple :

expression1 (idcat1=$var1) OR (idcat1=$var2) OR (idcat1=$var3)

ou un autre exmple :

(prest=a) or (prest=B) or (prest=c)

puis

((expression1) OR (expression2) OR (expression3)) AND (expression4)

Share this post


Link to post
Share on other sites

Salut,

visiblement, SQL te renvoit une erreur et tu ne sais pas d'où elle vient... si ça peut t'aider, mets ta requête sous cette forme :

$Resultat=mysql_query($TaRequete) or die(mysql_error());

ou alors, SQL te renvoit une réponse qui ne correspond pas à ce que tu demandes, mais ça, tu ne l'as écris nulle part...

Ton erreur ne viendrait pas plutôt d'un oubli des guillement autour des different $var ou de a, b et c... S'il s'agit de chaines de caractères, ces guillemets sont nécessaires!!!

A+

Edited by Bourinho

Share this post


Link to post
Share on other sites
SELECT * FROM table WHERE ((idcat1=$var1 OR idcat1=$var2 OR idcat1=$var3) OR (idcat2=$var1 OR idcat2=$var2 OR idcat2=$var3) OR (idcat3=$var1 OR idcat3=$var2 OR idcat3=$var3)) AND (prest=a or prest=b or prest=c)

Tu as une table qui contient des produits, des articles ou des services.

Tu doit aussi avoir une table catégorie.

Un des tes produits ( ou articles ou services ) peut appartenir à [1..3] categories.

Est-ce que c'est bien ça ?

Tu modélise l'association entre ta table et tes catégories à l'aide de 3 champs : idcat1, idcat2, idcat3 ?

Si c'est bien ça ( là je joue un peu à Madame Irma, je n'ai pas la structure des tables ), ton pb n'est pas dans ta requête SQL mais dans la conception de ta base de donnée.

Avec la modélisation que tu as choisi tu va galérer.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...