Bonjour, je voudrais faire un module de recherche très simple qui permettrait de retrouver des infos dans la base de donnée. Mais cela suivant un OU deux critères. C'est à dire que l'utilisateur pourra choisir de rechercher suivant, en l'occurrence, le département et le secteur d'activité.
J'ai donc utilisé deux listes déroulante <select>.
Problème : je n'arrive pas à rechercher dans la bd en fonction d'un seul critère si il n'y en a qu'un de sélectionné.
Il me recherche a chaque fois des résultats suivant les 2 critères et donc il ne trouve rien lorsque je n'en sélectionne qu'un.
voilà un bout de code :
$sql = "SELECT etablissement FROM fiches WHERE departement='$selectValueDepartement' and secteur='$selectValueSecteur'";
if (empty($selectValueDepartement) and (empty($selectValueSecteur)))
{
echo "remplir les champs";
}
if (empty($selectValueDepartement) and (!empty($selectValueSecteur)))
{
$sql = "SELECT etablissement FROM fiches WHERE secteur='$selectValueSecteur'";
}
if (!empty($selectValueDepartement) and (empty($selectValueSecteur)))
{
$sql = "SELECT etablissement FROM fiches WHERE Departement='$selectValueDepartement'";
}
// lance la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// libère l'espace mémoire
mysql_free_result ($req);
mysql_close ();
?>
Resultat de la recherche :<br />
<?php echo $data'etablissement'];
?>
Bonjour,
il faudrait que tu géneres ta requete en fonction des résultats du select, par exemple :
if($selectValueDepartement && $selectValueSecteur) {
$sql = "... WHERE departement=selectValueDepartement AND secteur=$selectValueSecteur";
}
else if(!$selectValueDepartement && $selectValueSecteur) {
$sql = "... WHERE secteur=$selectValueSecteur";
}
else if($selectValueDepartement && !$selectValueSecteur){
$sql = " ... WHERE departement=selectValueDepartement";
}
En espérant t'avoir aidé
Super, ça marche ! J'y avais pas pensé, je me cassais la tête avec des empty...
Merci beaucoup :)