par
ojediop » 12 juil. 2013, 19:43
bonjour à tous voila j'ai un problème que j'arrive pas à résoudre. j'ai fait un formulaire de recherche multicritère qui doit aller chercher dans une base de données des infos mais le problème c'est que j'arrive pas à afficher correctement les info récupéré. si je renseigne le premier champs du formulaire j'ai ne réponse mais si je rempli un autre champs j'ai aucune réponse. et si je rempli deux champs aussi j'ai pas de réponse.
pouvez vous m'aider svp.
je joins le formulaire et le code php
formulaire
<form method="post" action="recherche.php">
<p>
Type d'opération : <br />
<select name="type_ope" value="Choisissez">
<option value="" selected="selected"></option>
<option>vente</option>
<option>location</option>
</select><br />
type de bien : <br />
<select name="type_bien">
<option value="" selected="selected"></option>
<option value="1">Villa</option>
<option value="2">appartement</option>
<option value="3">terrain</option>
<option value="4">chambre</option>
<option value="5">magasin</option>
<option value="6">immeuble</option>
<option value="7">studio</option>
<option value="8">bureaux</option>
<option value="9">entrepot</option>
</select><br />
prix : <br />
<select name="prix">
<option value="" selected="selected"></option>
<option value="1"> Moins de 200 000</option>
<option value="2"> Entre 200 000 et 300 000</option>
<option value="3"> Entre 300 000 et 400 000</option>
<option value="4"> Entre 400 000 et 600 000</option>
<option value="5"> Entre 600 000 et 800 000</option>
<option value="6"> Entre 800 000 et 1 000 000</option>
<option value="7"> Entre 1 000 000 et 1 500 000</option>
<option value="8"> Entre 1 500 000 et 2 000 000</option>
<option value="9"> Plus de 2 000 000</option>
</select><br />
<input type="submit" value="Valider" /><br />
code php
$cnx = mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
$db = mysql_select_db($bdd) or die("Impossible de se connecter");
if(!empty($_POST['type_ope'])) {
$choix[] = 'type_ope = "' . mysql_real_escape_string($_POST['type_ope']) . '"';
}
if(!empty($_POST['type_bien'])) {
$choix[] = 'type_bien = "' . mysql_real_escape_string($_POST['type_bien']) . '"';
}
if(!empty($_POST['prix'])) {
$choix[] = 'prix = "' . mysql_real_escape_string($_POST['prix']) . '"';
}
$sql = "SELECT * FROM annonce ";
if (isset($choix)) {
$sql .= ' WHERE ' . implode(" AND ", $choix);
}
$requete = mysql_query( $sql, $cnx );
echo $sql;
// On affiche chaque entrée une à une
while( $result = mysql_fetch_array( $requete ) )
{
echo $result['type_bien'];
echo $result['type_ope'];
echo $result['prix'];
}
bonjour à tous voila j'ai un problème que j'arrive pas à résoudre. j'ai fait un formulaire de recherche multicritère qui doit aller chercher dans une base de données des infos mais le problème c'est que j'arrive pas à afficher correctement les info récupéré. si je renseigne le premier champs du formulaire j'ai ne réponse mais si je rempli un autre champs j'ai aucune réponse. et si je rempli deux champs aussi j'ai pas de réponse.
pouvez vous m'aider svp.
je joins le formulaire et le code php
formulaire
[html]<form method="post" action="recherche.php">
<p>
Type d'opération : <br />
<select name="type_ope" value="Choisissez">
<option value="" selected="selected"></option>
<option>vente</option>
<option>location</option>
</select><br />
type de bien : <br />
<select name="type_bien">
<option value="" selected="selected"></option>
<option value="1">Villa</option>
<option value="2">appartement</option>
<option value="3">terrain</option>
<option value="4">chambre</option>
<option value="5">magasin</option>
<option value="6">immeuble</option>
<option value="7">studio</option>
<option value="8">bureaux</option>
<option value="9">entrepot</option>
</select><br />
prix : <br />
<select name="prix">
<option value="" selected="selected"></option>
<option value="1"> Moins de 200 000</option>
<option value="2"> Entre 200 000 et 300 000</option>
<option value="3"> Entre 300 000 et 400 000</option>
<option value="4"> Entre 400 000 et 600 000</option>
<option value="5"> Entre 600 000 et 800 000</option>
<option value="6"> Entre 800 000 et 1 000 000</option>
<option value="7"> Entre 1 000 000 et 1 500 000</option>
<option value="8"> Entre 1 500 000 et 2 000 000</option>
<option value="9"> Plus de 2 000 000</option>
</select><br />
<input type="submit" value="Valider" /><br />[/html]
code php
[php] $cnx = mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
$db = mysql_select_db($bdd) or die("Impossible de se connecter");
if(!empty($_POST['type_ope'])) {
$choix[] = 'type_ope = "' . mysql_real_escape_string($_POST['type_ope']) . '"';
}
if(!empty($_POST['type_bien'])) {
$choix[] = 'type_bien = "' . mysql_real_escape_string($_POST['type_bien']) . '"';
}
if(!empty($_POST['prix'])) {
$choix[] = 'prix = "' . mysql_real_escape_string($_POST['prix']) . '"';
}
$sql = "SELECT * FROM annonce ";
if (isset($choix)) {
$sql .= ' WHERE ' . implode(" AND ", $choix);
}
$requete = mysql_query( $sql, $cnx );
echo $sql;
// On affiche chaque entrée une à une
while( $result = mysql_fetch_array( $requete ) )
{
echo $result['type_bien'];
echo $result['type_ope'];
echo $result['prix'];
}[/php]