Probleme php moteur de recherche
supergengi
Messages postés
6
Statut
Membre
-
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.
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:
- Probleme php moteur de recherche
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Google moteur de recherche page d'accueil - Guide
- Copernic moteur de recherche - Télécharger - Navigateurs
- Copernic Desktop Search - Télécharger - Utilitaires
- Pourquoi mon moteur de recherche change tout seul ✓ - Forum Virus
3 réponses
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
en
(déplacement de l'accolade fermante du if afin que mysql_query soit exécuté dans les deux cas)
a+
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+
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
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
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.
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.