Erreur de syntaxe Mysql
Ayreon
Messages postés
6
Statut
Membre
-
Ayreon Messages postés 6 Statut Membre -
Ayreon Messages postés 6 Statut Membre -
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 download - Télécharger - Bases de données
- Erreur 0x80070643 - Accueil - Windows
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
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...
19. if (!empty($_POST['type'])){//si pas videJ'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