Formulaire de recherche multicriteres

Signaler
Messages postés
18
Date d'inscription
lundi 12 mars 2007
Statut
Membre
Dernière intervention
3 août 2009
-
nautilus99
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
-
Bonjour,
Je m'adresse à vous après de nombreuses recherches infructueuses sur internet.
Voilà c'est assez simple je voudrais faire une recherche multicriteres dans un formulaire sur une seule table contenant plusieurs champs.
L'idée étant que l'utilisateur n'est pas obligé de répondre à tous les champs du formulaires de recherche.
Par exemple voilà ma table :
Membre avec comme champs (id_membre, raisonscociale, secteur, effectif, localisation..).
Est-il possible avec l'instruction SELECT de choisir "et/ou" pour les différents paramètres de recherche.
Je vous remercie d'avance,
Bendoc.

4 réponses

Messages postés
22
Date d'inscription
dimanche 24 juillet 2005
Statut
Membre
Dernière intervention
3 août 2009

j'ai pas bien saisie ta demande mais tu pourra peut etre creer un array ou tu pourra avec des if y ajouter tous champs dont tu a besoin. puis dans la requete tu pourra faire ta recherche sur ce qui existe dans cet array.
essaye de preciser encore plus ce que tu demande.
Messages postés
18
Date d'inscription
lundi 12 mars 2007
Statut
Membre
Dernière intervention
3 août 2009

Merci et bien voilà, dans ma page de résultat je voudrais lister par exemple les membres situés dans telle ville ou dans telle ville et qui travaillerai dans tel secteur en fonction du choix des critère remplis dans mon formulaire de recherche...
Voilà j'espère avoir été plus clair.
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009

Bonjour,

// traitement du formulaire dans $_POST
// simplification de la requête...
$where = 'WHERE 1' ;
foreach( $_POST as $k => $v ) {
   if ( !empty( $v )
     $where .= " $k='$v'" ;
}
$q = 'SELECT * FROM ma_table ' . $where ;
$db->query( $q ) ;
// traitement du résultat...
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009

Correctif... Il faut penser à vérifier toutes les entrées, via une fonction sanitize() par exemple pour filtrer proprement les saisies et se prémunir d'injections SQL.