Fomulaire de recherche multicritères en php

Fermé
MISS97200 Messages postés 186 Date d'inscription jeudi 21 juin 2007 Statut Membre Dernière intervention 26 mai 2008 - 6 mars 2008 à 17:07
MISS97200 Messages postés 186 Date d'inscription jeudi 21 juin 2007 Statut Membre Dernière intervention 26 mai 2008 - 6 mars 2008 à 19:34
Bonjour,
j'ai besoin de faire un formulaire de recherche multicritères, pouvez vous m'aider s'il vous plait.
Sachant que l'utilisateur peut remplis tous les champs ou quelques un.
merci de votre aide.
A voir également:

5 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
6 mars 2008 à 17:20
Bonjour,

si le premier est obligatoire

tu construit ta requette ainsi:

$req="SELECT * FROM ta_table WHERE champ1_table='".$_POST['champ1']."'';

if=($_POST['champ2']!=""){
$req.=" AND champ2_table='".$_POST['champ2']."'";

}
if=($_POST['champ3']!=""){
$req.=" AND champ3_table='".$_POST['champ3']."'";

}

etc..

et $resultat=mysql_query($req);

etc....

@lain
2
MISS97200 Messages postés 186 Date d'inscription jeudi 21 juin 2007 Statut Membre Dernière intervention 26 mai 2008 11
6 mars 2008 à 17:25
et je suppose que si ce n'est pas obligatoire, je fais des if sur chaque critères?
Mon soucis est de l'afficher.
Comment faire pour afficher le résultat sur une autre page sous forme de tableau.
0
MISS97200 Messages postés 186 Date d'inscription jeudi 21 juin 2007 Statut Membre Dernière intervention 26 mai 2008 11
6 mars 2008 à 18:00
quelqu'un peut m'aider s'il vous plait.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
6 mars 2008 à 18:15
Si aucun n'est obligatoire:

//avant tu te connectes et selectionne ta base
$req="SELECT * FROM ta_table WHERE ";
if=($_POST['champ2']!=""){
$req.=" champ1_table='".$_POST['champ1']."'";
}else{
$req.=" champ1_table LIKE '%'"; //seul le premier comme ça
}
if=($_POST['champ2']!=""){
$req.=" AND champ2_table='".$_POST['champ2']."'";

}
if=($_POST['champ3']!=""){
$req.=" AND champ3_table='".$_POST['champ3']."'";

}

//etc..

$resultat=mysql_query($req);
echo "<table border='1'>";
echo "<tr><th>champ1_table</th><th>champ2_table</th><th>champ3_table</th></tr>"; //titres

while($ligne=mysql_fetch_array($resultat)){
	echo "<tr><td>".$ligne['champ1_table']."</td><td>".$ligne['champ2_table']."</td><td>".$ligne['champ3_table']."</td></tr>";
}
echo "</table>";
//  si tu en as plus tu adaptes



0
MISS97200 Messages postés 186 Date d'inscription jeudi 21 juin 2007 Statut Membre Dernière intervention 26 mai 2008 11
6 mars 2008 à 18:35
ok, je ne savais pas que l'on pouvait rajouter des éléments à la requête ainsi.
je te remercie, je vais essayer.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
6 mars 2008 à 18:59
a la relecture, j'ai fait une petite erreur:

//avant tu te connectes et selectionne ta base
$req="SELECT * FROM ta_table WHERE ";
if=($_POST['champ1']!=""){//il faut le 1 et pas le 2 ici
$req.=" champ1_table='".$_POST['champ1']."'";
}else{
......
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MISS97200 Messages postés 186 Date d'inscription jeudi 21 juin 2007 Statut Membre Dernière intervention 26 mai 2008 11
6 mars 2008 à 19:34
oui, j'ai vu
0