Probleme php moteur de recherche

supergengi Messages postés 6 Statut Membre -  
supergengi Messages postés 6 Statut Membre -
Bonjour,
je debut en php et j'essai de faire un moteur de recherche pour un site d'agence immobilliere
j'ai fait une petite liste déroulante dans laquel tu choisi une valeur pour les champs Area ,Type ,Bedrooms et Price.
le probléme est que si je choisi All pour tous les champs c'est a dire que je veut afficher tous les valeurs dans la table il me fait cette erreur :
Parse error: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Tests\realestate\recherche.php on line 53
cepandant si je lui met des valeurs specifique ca marche
voici le code:
<?php
$idConnection= mysql_connect("localhost","root","");
mysql_select_db("test");

if (isset($_POST['Area']) AND isset($_POST['Type'])AND isset($_POST['Bedrooms'])AND isset($_POST['Price']))


{

$postArea = $_POST['Area'];
$postType = $_POST['Type'];
$postBedrooms = $_POST['Bedrooms'];
$postPrice=$_POST['Price'];

if ($postArea =='ALL' AND $postType=='ALL' AND $postBedrooms=='ALL' AND $postPrice=='ALL')
{
$sql="SELECT * FROM propreties ";
}
else
{
$pricebefore=substr($_POST['Price'],0,strpos($_POST['Price'],"-"));
$pricebefore=str_replace("-","",$pricebefore);


$priceafter=strstr($_POST['Price'],"-");
$priceafter=str_replace("-","",$priceafter);



$sql = "SELECT * FROM propreties WHERE Area = '$postArea' AND Type = '$postType' AND Bedrooms = ' $postBedrooms'AND Price BETWEEN '$pricebefore' AND '$priceafter' or ";



$result = mysql_query($sql) or die(mysql_error());;
$num_rows = mysql_num_rows($result);
echo $sql;
echo "$num_rows Rows\n";
}
}
while ($donnees = mysql_fetch_array($result))
{


?>
<H2><font color="orange"size="6" >
Search Results:
</font><div style="color:black; font-size:20">
<p><strong>Area: <?php echo $donnees['Area'];?></strong></br>
<strong>Type:<?php echo $donnees['Type'];?></strong></br>
<strong>Bedrooms:<?php echo $donnees['Bedrooms']; ?></strong></br>
<strong>Price:<?php echo $donnees ['Price']; ?></strong></br></p>

<?php




}

if ($num_rows=='0'){
echo " Sorry Nothing Matched";
}
mysql_close();


?>

si quelqu'un peut m'aider a trouver le probleme et si c'est grave "take it easy" ta affair a un debutant.

merci d'avance.
A voir également:

3 réponses

Dr Zoidberg Messages postés 547 Statut Membre 100
 
Salut,

Apparemment il doit y avoir un problème dans tes blocs if :
$result = mysql_query($sql) or die(mysql_error());
n'est pas exécuté dans le cas ou if ($postArea =='ALL' AND $postType=='ALL' AND $postBedrooms=='ALL' AND $postPrice=='ALL') est vérifié.

Je n'ai pas détaillé, mais ça marchera peut-être en modifiant
$result = mysql_query($sql) or die(mysql_error());;
$num_rows = mysql_num_rows($result);
echo $sql;
echo "$num_rows Rows\n";
}
} 


en

}
$result = mysql_query($sql) or die(mysql_error());
$num_rows = mysql_num_rows($result);
echo $sql;
echo "$num_rows Rows\n";
}

(déplacement de l'accolade fermante du if afin que mysql_query soit exécuté dans les deux cas)
a+
0
supergengi Messages postés 6 Statut Membre
 
salut
c'est magique ton astuce j'ai couper coller et boom ca marche
et c'est logique parsque le else doit se fermer directement aprés la seconde requéte
merci infiniment pour ton aide Dr Zoidberg
0
supergengi Messages postés 6 Statut Membre
 
salut
maintenant j'ai une autre question si c'est possible
dans le champ price du formulaire j'ai mis des valeur comme suit:
10000-60000
60000-10000
etc...
et quand la requete s'execute il me renvoi 10 pour 10000 et 60 pour 60000
et ce qu'il ya une commande qui peut resoudre le probleme
merci d'avance.
0