zimounet Posté 25 Juin 2006 Partager Posté 25 Juin 2006 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
zimounet Posté 25 Juin 2006 Auteur Partager Posté 25 Juin 2006 petite précision: je n'utilise pas mysql 5 Lien vers le commentaire Partager sur d’autres sites More sharing options...
BigVicente Posté 25 Juin 2006 Partager Posté 25 Juin 2006 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 Des AND et des OR c'est une table de veritée toute bete non ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
zimounet Posté 25 Juin 2006 Auteur Partager Posté 25 Juin 2006 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
BigVicente Posté 25 Juin 2006 Partager Posté 25 Juin 2006 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...). Lien vers le commentaire Partager sur d’autres sites More sharing options...
robinsonvendredi Posté 25 Juin 2006 Partager Posté 25 Juin 2006 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= or (prest=c) puis ((expression1) OR (expression2) OR (expression3)) AND (expression4) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bourinho Posté 25 Juin 2006 Partager Posté 25 Juin 2006 (modifié) 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+ Modifié 25 Juin 2006 par Bourinho Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spidetra Posté 26 Juin 2006 Partager Posté 26 Juin 2006 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant