Erreur de syntaxe Mysql
Bonjour,
Je suis en train de réaliser un moteur de recherche en php avec résultat s'appuyant sur une base de donnée.
Lors de l'affichage des données je reçois ceci :
Erreur de syntaxe près de '' à la ligne 1
Je ne comprend pas de quoi cela peut venir...
voici mes codes :
HTML
PHP
Je ne m'y connais pas des masses en php et mysql...
Quelqu'un pour m'aider ?
Je suis en train de réaliser un moteur de recherche en php avec résultat s'appuyant sur une base de donnée.
Lors de l'affichage des données je reçois ceci :
Erreur de syntaxe près de '' à la ligne 1
Je ne comprend pas de quoi cela peut venir...
voici mes codes :
HTML
<form id="form1" name="form1" method="post" action="search2.php">
<label>type
<select name="type" id="type">
<option value="Achat">achat</option>
<option value="location">location</option>
</select>
</label>
<label>submit
<input type="submit" name="submit" id="submit" value="Envoyer" />
</label>
</form>
PHP
<?php
$SQL="Select * from biens where ";
if ($_POST['type']=="type")
{
$SQL=$SQL."type LIKE '%" . $_POST['type'] . "%'";
}
else
{
echo" Ce bien n'existe pas";
}
$result = mysql_query($SQL, $maconnexion) or die(mysql_error());
while ($row=mysql_fetch_array($result)){
echo $row["type"];
echo $row["typedepropriete"];
echo $row["pays"];
}
?>
Je ne m'y connais pas des masses en php et mysql...
Quelqu'un pour m'aider ?
4 réponses
-
Bonsoir,
if ($_POST['type']=="type")
{
$SQL=$SQL."type LIKE '%" . $_POST['type'] . "%'";
}
comment fais tu pour avoir $_POST['type']=="type" ?? a partir d'une liste déroulante qui a deux valeurs "achat" et "location"
mets plutôt:
<?php $SQL="SELECT * FROM biens WHERE "; if (!empty($_POST['type']){//si pas vide $SQL.="type LIKE '%".$_POST['type']."%'"; $result = mysql_query($SQL, $maconnexion) or die(mysql_error()); if(mysql_num_rows($result) >0){ while ($row=mysql_fetch_array($result)){ echo $row["type"]; echo $row["typedepropriete"]; echo $row["pays"]; } }else{ echo "Acun bien ne correspond a votre demande"; } }-
-
-
@Alain_42Super ça marche niquel merci beaucoup !
J'aurais encore une petite question si je peux abuser de ta bonté :
Je souhaiterais que mon moteur de recherche soit multicritère, à savoir :
le type (comme dans le code plus haut)
le pays
le prix
à quoi doit ressembler ma requete sql ?
a ca ?
$SQL="SELECT * FROM biens WHERE "; if (!empty($_POST['type'])){//si pas vide $SQL.="type LIKE '%".$_POST['type']."%'"; if (!empty($_POST['pays'])){//si pas vide $SQL.="pays LIKE '%".$_POST['pays']."%'"; if (!empty($_POST['prix'])){//si pas vide $SQL.="prix LIKE '%".$_POST['prix']."%'";
Merci encore
-
-
Il faut mettre des AND entre chaque condition
$SQL="SELECT * FROM biens WHERE "; if (!empty($_POST['type'])){//si pas vide $SQL.="type LIKE '%".$_POST['type']."%'"; if (!empty($_POST['pays'])){//si pas vide $SQL.=" AND pays LIKE '%".$_POST['pays']."%'"; if (!empty($_POST['prix'])){//si pas vide $SQL.="AND prix LIKE '%".$_POST['prix']."%'";
mais attention il faut que type soit obligatoire
et LIKE '%".$_POST['prix']."%' va te sortir des trucs inattendus ! car % veut dire n'importe quoi avant ou après
si 125 demandé ça va te sortir tous les enregistrements 21250 1212569 etc-
-
-
@Alain_42ah ben oui ! Ca fait toute la journée que je suis là dessus, j'ai plus les idées très claires :D
Merci beaucoup en tout cas !
Passe une très bonne soirée !
-
-
Bon courage et bonne chance!! =P
-
Bravo ^^