Il est important de vérifier les valeurs de tes champs, l'utilisateur peut y inclure ce qu'il veux.
je te préconiserais de commencer par instancier ton tableau.
$tableau = array();
ensuite pour chaque champs :récupère la valeur, vérifie la et protège la des requètes malhonnète
$varaible1 = (isset($_GET['variable1'])) ? $_GET['variable1'] : '';
$variable1 = check_value($variable1); //soit une fonction qui vérifie le contenu soit une exprèssion régulière
$variable1 = $variable1; //Ajouter ici les fonctions de protection des injection SQL (je ne connais pas cela par coeur)
if ($variable1 != '') $tableau[] = '`variable1` LIKE \''.$varaible1.'\'';
//Autre variable avec code du même type
$clause_where = implode(' AND ',$tableau);// voir si il ne faut pas tester que le tableau ne soit pas vide
$sql = 'SELECT * FROM table'
if ($clause_where ! = '') $sql .= ' WHERE '.$clause_where;
//suite du code
c'est un exemple de code, tu peux l'imaginer tout autrement.
Si tu veux l'automatiser un peu plus, il te faut catégoriser tes variables par rapport au types de données quelles contiennent (date, numéro de téléphone, nom, ...).
pour tes dates, remplace simplement le LIKE par l'opérateur que tu veux
PS, tes LIKE serait peut être plus éfficace comme ceci
if ($variable1 != '') $tableau[] = '`variable1` LIKE \'%'.$varaible1.'%\'';
Il est important de vérifier les valeurs de tes champs, l'utilisateur peut y inclure ce qu'il veux.
je te préconiserais de commencer par instancier ton tableau.
[php]$tableau = array();[/php]
ensuite pour chaque champs :récupère la valeur, vérifie la et protège la des requètes malhonnète
[php]$varaible1 = (isset($_GET['variable1'])) ? $_GET['variable1'] : '';
$variable1 = check_value($variable1); //soit une fonction qui vérifie le contenu soit une exprèssion régulière
$variable1 = $variable1; //Ajouter ici les fonctions de protection des injection SQL (je ne connais pas cela par coeur)
if ($variable1 != '') $tableau[] = '`variable1` LIKE \''.$varaible1.'\'';
//Autre variable avec code du même type
$clause_where = implode(' AND ',$tableau);// voir si il ne faut pas tester que le tableau ne soit pas vide
$sql = 'SELECT * FROM table'
if ($clause_where ! = '') $sql .= ' WHERE '.$clause_where;
//suite du code
[/php]
c'est un exemple de code, tu peux l'imaginer tout autrement.
Si tu veux l'automatiser un peu plus, il te faut catégoriser tes variables par rapport au types de données quelles contiennent (date, numéro de téléphone, nom, ...).
pour tes dates, remplace simplement le LIKE par l'opérateur que tu veux
PS, tes LIKE serait peut être plus éfficace comme ceci
[php]if ($variable1 != '') $tableau[] = '`variable1` LIKE \'%'.$varaible1.'%\'';[/php]