Requete sql complexe en php

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Inscription: 27 Avr 2006

Requete sql complexe en php

Message le Dim Juin 25, 2006 18:56

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


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18812
Inscription: 8 Aoû 2004

Message le Dim Juin 25, 2006 19:13

Déjà, ça
(idcat1=$var1 OR idcat1=$var2 OR idcat1=$var3)
peut être simplifié en
Code: Tout sélectionner
(idcat1 in ('$var1','$var2','$var3'))
Pareil pour les autres :wink:

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Inscription: 27 Avr 2006

Message le Dim Juin 25, 2006 19:21

ça fonctionne avec mysql 4.X ?

puis pour le "déjà", j'ai expliqué dans mon message que la requete donné était une requete pour expliquer le principe de ce que je souhaite, ma requete ne fonctionnera pas, je le sais bien... mais bon si je viens demander de l'aide...^^

netsys
WRInaute passionné
WRInaute passionné
 
Messages: 1111
Inscription: 17 Juil 2004

Message le Dim Juin 25, 2006 19:50

Ben oui les parenthèses ca marche pour séparer les OR des AND.


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18812
Inscription: 8 Aoû 2004

Message le Dim Juin 25, 2006 20:16

oui, ça marche avec du mysql 4.x
sinon, la requête de base peut être simplifiée en
Code: Tout sélectionner
SELECT * FROM table WHERE ((idcat1 in ('$var1','$var2','$var3')) OR (idcat2 in ('$var1','$var2','$var3')) OR idcat3 in (('$var1','$var2','$var3'))) AND (prest in ('a','b','c')))
Ca permet d'éviter de faire des requêtes trop gourmandes en mémoire.
ma requete ne fonctionnera pas, je le sais bien.
Il ne faut pas être défaitiste :D

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Inscription: 27 Avr 2006

Message le Dim Juin 25, 2006 21:10

Merci @ tous, je vais tester...

Mais la je code vraiment un script de fou MDR, je vais faire exploser les serveur de mon hébergeur expldr


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: salva, xdeslandes et 2 invités