Champ de recherche multiple avec php mysql
Bonjour à tous !
J'ai créer un moteur de recherche qui permet de rechercher plusieurs catégorie avec plusieurs champs.
Une erreur sql :cry: n'arrête pas d'apparaître lors de l'exécution de mon script.
S'il vous plait je demande votre assistance.
Voici l'erreur
Code:
1 2
| Erreur SQL !DHEAT
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 '' at line 1 |
Je vous donne l'ensemble de mon code pour vous permettre une meilleure compréhension. Merci beaucoup d'avance.
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
| <?php
//recherche des résultats dans la base de données$result = mysql_query( 'SELECT prenom
if(isset($_GET['recherche'])){
extract($_GET);
$req = "SELECT `id`, `idsiteinterne`, `idsiteprovider`, `site_name`, `adresseIP`, `service` FROM cyb_site WHERE 1=1 ";
//Le WHERE 1=1 permet de pas s'embeter à savoir si le WHERE a déjà été mis ou pas après dans les différents "if isset..."
//Ajout de la recherche sur le idsiteinterne s'il est renseigné
if (isset($_POST['idsiteinterne'])) $req = $req & " AND idsiteinterne LIKE '%".htmlentities(trim($_post['idsiteinterne']))."%'";
//Ajout de la recherche sur le idsiteprovider s'il est renseigné
if (isset($_POST['idsiteprovider'])) $req = $req & " AND idsiteprovider LIKE '%".htmlentities(trim($_post['idsiteprovider']))."%'";
//Ajout de la recherche sur site_name si elle est renseignée
if (isset($_POST['site_name'])) $req = $req & " AND site_name LIKE '%".htmlentities(trim($_post['site_name']))."%' ";
if (isset($_POST['adresseIP'])) $req = $req & " AND adresseIP LIKE '%".htmlentities(trim($_post['adresseIP']))."%' ";
if (isset($_POST['service'])) $req = $req & " AND service LIKE '%".htmlentities(trim($_post['service']))."%' ";
$req = $req & " LIMIT 10";
echo'<h4>Resultat de recherche</h4>';
echo '<table>';
echo '<tr>';
echo '<th class="td_seach_titre">N°</th>';
echo '<th class="td_seach_titre">ID Provider</th>';
echo '<th class="td_seach_titre">ID Interne</th>';
echo '<th class="td_seach_titre">Etat du site</th>';
echo '<th class="td_seach_titre">Nom du site</th>';
echo '<th class="td_seach_titre">Adresse IP</th>';
echo '<th class="td_seach_titre">Service</th>';
echo '</tr>';
echo '</table>';
// affichage d'un message "pas de résultats"
//$result = mysql_query($req)
echo $result = mysql_query($req)
or die('Erreur SQL !'.$req.'<br /><b>'.mysql_error().'</b>');
if (mysql_num_rows($result)==0)
{
?>
<h3 style="text-align:center; margin:10px 0;">Pas de résultats pour cette recherche</h3>
<?php
}
else
{
// parcours et affichage des résultats
while( $result = mysql_query($result))
{
?>
<div class="article-result">
<table>
<tr>
<td class="id"><?php echo $post->id; ?></td>
<td class="td_seach"><a href="accueil.php?view=24&u='.$row['id'].'""><?php echo $post->idsiteinterne; ?></a></td>
<td class="td_seach"><?php echo $post->idsiteprovider; ?></td>
<td class="td_seach"><?php echo $post->idetatsite; ?></td>
<td class="td_seach"><?php echo $post->site_name; ?></td>
<td class="td_seach"><?php echo $post->adresseIP; ?></td>
<td class="td_seach"><?php echo $post->service; ?></td>
</tr></table>
</table>
</div>
<?php
}
}
}
?>
<div id="boxManage">
<h4>Rechercher un site</h4>
<p>Trouvez un site par son nom, sa date de création, son ID, son statut. </p>
<form method="get" action="">
<table width="480" border="0" class="right">
<tr>
<td class="recherche_text"><label for="id_interne">ID interne</label></td>
<td > <input type="text" name="idsiteinterne" class="recherche" id="id_interne" value="<?php if (isset($_POST['idsiteinterne'])) echo htmlentities(trim($_POST['idsiteinterne'])); ?>"></td>
</tr>
<tr>
<td class="recherche_text"><label for="id_provider" >ID Provider</label></td>
<td >
<input type="text" name="idsiteprovider" class="recherche" id="id_provider" value="<?php if (isset($_POST['idsiteprovider'])) echo htmlentities(trim($_POST['idsiteprovider'])); ?>"></td>
</tr>
<tr>
<td class="recherche_text"><label for="nom_du_site">Nom du site</label></td>
<td >
<input type="text" name="site_name" class="recherche" id="nom_du_site" value="<?php if (isset($_POST['site_name'])) echo htmlentities(trim($_POST['site_name'])); ?>"></td>
</tr>
<tr>
<td class="recherche_text"> <label for="adresse_ip">Adresse IP</label></td>
<td >
<input type="text" name="adresseIP" class="recherche" id="adresse_ip" value="<?php if (isset($_POST['adresseIP'])) echo htmlentities(trim($_POST['adresseIP'])); ?>"></td>
</tr>
<tr>
<td class="recherche_text">Statut</td>
<td class="seach_name" >
<?php
$query = "SELECT * FROM `etat_site`";
$result = mysql_query($query);
echo '<SELECT name="idetatsite" class="recherche_select">';
while ($row = mysql_fetch_array($result)) {
echo '<OPTION>'.$row['etatsite'].'</OPTION>';
}
echo '</SELECT>';
?>
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="recherche" class="recherche_submit" value="Rechercher" /></td>
</tr>
</table>
</form>
</div>
<div id="results"></div> |