Requete vide car variable vide

Bonjour,

voila j’ai un formulaire de recherche avec des select box.
Par default je leur ai attribué une valeure nulle :

...

ma page php récupère les POST sauf que la requête ne me renvoi rien si un des champs n’a pas été choisi (si il a été laissé sur sa valeure nulle donc) car tous les champs sont rensieignés dans ma base.
Je voudrais simplement que la requete sql ignore cette varibale si rien n’a été select dans le choix déroulant.

Merci de votre aide.

Lors de la construction de la requête sql, met des OR au lieu des AND après ton WHERE. :neutre:

Oui, et surtout donne le code qui génère la requête, qu’on t’aiguille :slight_smile:

Karl : je doit bien utiliser AND car les valeurs doivent etre associées.

Voici ma requête :

$sql = “SELECT * FROM produits WHERE propriete = ‘$Propriete’ AND application = ‘$Application’”;

Dans ce cas, construit ta requête… ie:

$sql =  'select * from produits';
$criteria = array();
if (!empty($Propriete)) {
  $criteria[] = sprintf("propriete = '%s'", mysql_real_escape_string($Propriete));
}
if (!empty($Application)) {
  $criteria[] = sprintf("application= '%s'", mysql_real_escape_string($Application));
}
if ($criteria) {
  $sql .= sprintf(' where %s', implode(' and ', $criteria));
}

C’est la solution bourrine de base (j’ai également échappé proprement les $Propriete et $Application, ces dernières ne l’étant pas = injection SQL possible

Marci à vous !