Hello,
voilà, je récupère des données dans un formulaire à partir desquelles je dois faire un bête SELECT.
En gros j'ai des groupes de cases à cocher :
a b c
p q
w x y z
(chaque groupe correspond à une colonne de la TABLE)
et la requête correspondante :
SELECT * FROM table WHERE (a OR b OR c) AND (p OR q) AND (w OR x OR y OR z);
Le seul truc c'est que je ne sais pas à l'avance combien (de 0 à n) de cases seront cochées dans chaque groupe, ni lesquelles. Donc à chaque fois que je concatène une condition supplémentaire à la clause, je ne sais pas si je dois caser un OR, un AND, ...
Du coup la requête peut très bien être :
SELECT * FROM table WHERE (a OR b) AND (p OR q) AND w;
ou SELECT * FROM table WHERE (a OR b OR c) AND (w OR x OR y OR z);
ou SELECT * FROM table WHERE c;
ou ...
Je cherche donc à écrire une fonction générique qui permettrait de construire la clause WHERE de la requête, et j'ai pas trop d'idée.
(pour l'instant j'ai fait ça sans fonction, avec des séries de if, mais c'est bordélique et ça ne me plaît pas )
Je ne suis certainement pas le 1er à réfléchir à ça, alors si qql avait une piste...
Message édité par Peanuty le 16-06-2006 à 11:41:09