Erreur de syntaxe Mysql
Ayreon
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Ayreon Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Ayreon Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
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 ?
A voir également:
- Erreur de syntaxe Mysql
- Mysql community server - Télécharger - Bases de données
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
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:
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"; } }
Il faut mettre des AND entre chaque condition
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
$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
Ceci dit, maintenant j'ai une parse error à hauteur de la ligne 19
18. $SQL="SELECT * FROM biens WHERE ";
19. if (!empty($_POST['type']){//si pas vide
20. $SQL.="type LIKE '%".$_POST['type']."%'";
Tout me parait correct pourtant...
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 ?
Merci encore