Formulaire de Recherche.

Eléphant du PHP | 424 Messages

06 déc. 2007, 12:35

Bonjour,

J'ai réalisé un formulaire de recherche pour un site immobilier tout se passe bien à l'exception du fait que si l'utilisateur ne mentionne pas une donnée la recherche ne s'effectue pas correctement.

Par exemple l'utilisateur doit indiquer 4 critéres de recherche :

Nombre de pièces
Code postal
Surface
Prix

Si l'utilisateur entre le nombre de pièces mais pas le code postal il m'affiche aucun résultat puisque le code postal n'est pas entré.
Comment faire pour indiqué que si le code postal n'est pas rentré il affiche tous les codes postaux ??

merci pour vos réponses
Youpi Youpi Yo !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 déc. 2007, 12:45

Dans la construction de ta requête tu fois avoir un "AND code_postal = '$valeur'", il suffit simplement de mettre cette instruction sous condition et ne l'ajouter dans ta requête que si $valeur est renseigné. Ainsi, si aucune valeur n'est spécifiée, aucun filtre ne sera appliqué sur ce critère :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 424 Messages

06 déc. 2007, 12:49

OAlors d'aprés ce que tu m'as dis voici ce que j'ai fais :
if ($selectdipe["code_postal"] == "")
$cp = "";
else
$cp = $code_postal;
Mais avec ceci la recherche ce fais avec comme critére pour code_postal --> RIEN ....

Comment faire pour que justement il ne fasse pas de filtre si code_postal = "" ??

merci pour ton aide
Youpi Youpi Yo !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 déc. 2007, 13:54

Bah euh...
$sql = "SELECT ... FROM ... WHERE ... ";

if (!empty($_POST['codePostal'])) {
  $sql.= " AND code_postal = '".$_POST['codePostal']."'";
}

$sql.= " ORDER BY ... ";
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...