[SQL] moteur de recherche
Bonjour,
Je suis novice en php, disons que j'ai étudié ce code il y a 4 ans et que je n'y ai plus retouché jusqu'à très récemment.
Je suis en train de mettre au point un petit moteur de recherche interne sur le thème d'une agence immobilière. Je formulaire marche impeccable, seulement mon fichier php possède un bug que je désirerais tout naturellement corriger.
Alors tout d'abord voici mon code (basé seulement à partir de deux requêtes du formulaire, je compliquerai la chose une fois que j'aurai compris comment ça marche) :
Alors voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| <?php
mysql_connect("localhost", "root", "");
mysql_select_db("locatif"); // Sélection de la base
// Connexion à la BDD ici !
// Récupération des données de piece
if (isset($_POST['piece']) && $_POST['piece'] != "no") {
$piece = " AND piece = ".mysql_real_escape_string($_POST['piece']);
}
else { $piece = ""; }
// Récupération des données de commune
if (isset($_POST[commune]) && $_POST[commune] != "no") {
$commune = " AND commune LIKE '%".mysql_real_escape_string($_POST['commune']."%'");
}
else { $commune = ""; }
// Création de la requête SQL
$select = "SELECT * FROM maisons WHERE 1".$piece.$commune." ORDER BY id";
// Exécution de la requête
$raw = mysql_query($select) or die(mysql_error());
?>
<table>
<tr align='center'>
<td colspan='3'>Vos resultats</td>
</tr>
<tr>
<td>Pieces</td>
<td>Commune</td>
</tr>
<?php
// Affichage des données
while ($data = mysql_fetch_array($raw))
{
print ("
<tr>
<td>".$data['piece']."</td>
<td>".$data['commune']."</td>
<tr>
");
}
// Fermeture connexion
mysql_close();
?>
</table>
?> |
Lorsque je sélectionne dans mon formulaire quelque chose dans le champ "commune", voilà l'erreur qui m'est affichée :
Citation:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%paris% ORDER BY id' at line 1
Manifestement, il s'agit simplement d'une erreur de syntaxe des ' en trop, peut-être des / à rajouter, bref, je patauge. Pour info, j'utilise wamp 2.0
Merci d'avance aux âmes charitables,
L.C.