|
plagatte 5
| Posté : 13-07-2004 16:59
Bonjour à tous
Je suis en train de créer un moteur de recherche, dans lequel j'ai placé une liste déroulante. Celle ci permet à l'utilisateur parmi le critère sélectionner d'accéder à une liste de résultat. Cependant j'ai un problème parce que mon code ne marche pas. J'ai comme l'impression qu'il n'arrive pas à récupérer la variable choisie.
Je vous laisse mon code, si vous voyez l'erreur faite le moi savoir.
Code du formulaire de recherche :
<form method="get" action="resultat.php">
<table width="426" align="center">
<tr>
<td>Nom du Commerce : </td>
<td><input type="text" name="nom"></td>
</tr>
<tr>
<td>Adresse : </td>
<td><input type="text" name="adresse"></td>
</tr>
<tr>
<td valign="top">Type : </td>
<td> <select name="type">
<option> </option>
<option>Affûtage</option>
<option>Agence Immobilière</option>
<option>Auto Ecole</option>
<option>Banque</option>
<option>Bâtiment</option>
<option>Bijouterie-Horlogerie</option>
<option>Boulangerie-Patisserie</option>
<option>Boucherie</option>
<option>Carrosserie</option>
<option>Coiffure</option>
<option>Epicerie</option>
<option>Electricité</option>
<option>Entretien Jardin</option>
<option>Esthétique</option>
<option>Expert Comptable</option>
<option>Fleuriste</option>
<option>Garage</option>
<option>Grande Surface</option>
<option>Restaurant</option>
<option>Hôtel-Restaurant</option>
<option>Imprimerie</option>
<option>Lavage Auto</option>
<option>Librairie</option>
<option>Location de Matériel</option>
<option>Maçonnerie</option>
<option>Matériaux Vente</option>
<option>Menuiserie Métallique</option>
<option>Nettoyage</option>
<option>Piscine</option>
<option>Pizzéria</option>
<option>Peinture-Vitrerie</option>
<option>Plomberie</option>
<option>Pressing</option>
<option>Tabac-Journaux</option>
<option>Taxi</option>
<option>Tissu</option>
<option>Transport</option>
</select></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="recherche" value="Cherche"></td>
</tr>
<tr>
<td colspan="2" align="center"><small><input type="checkbox" name="allcriteres" value="oui">Obligatoirement tous les critères</td>
</tr>
</table>
</form>
Code de la page de résultat :
Avavnt le html :
<?
$nom=$_GET["nom"];
$adresse=$_GET["adresse"];
$type=$_POST["type"];
?>
Après :
<?php
$session=mysql_connect('localhost', "root", "");
$db=mysql_select_db("Mairie Pinsaguel");
if ( $allcriteres == "oui")
$operateur="AND";
else
$operateur="OR";
if ($nom != "")
$finrequete .= " NomCommerce LIKE '%$nom%'";
if ($adresse != "")
if ($finrequete != "")
$finrequete .= " $operateur (AdresseCommerce LIKE '%$adresse%' )";
else
$finrequete .= " (AdresseCommerce LIKE '%$adresse%' )";
if ($type != "")
if ($finrequete != "")
$finrequete .= " $operateur TypeCommerce LIKE '%$type%'";
else
$finrequete .= " TypeCommerce LIKE '%$type%'";
if ($finrequete != "")
$query="SELECT * FROM commerce WHERE $finrequete";
else
$query="SELECT * FROM commerce";
$result =mysql_query($query);
echo("<table border=1>");
echo("<tr ><td bgcolor=#99CCFF>Nom du Commerce</td><td bgcolor=#99CCFF>Adresse du Commerce</td><td bgcolor=#99CCFF>Téléphone du Commerce</td><td bgcolor=#99CCFF>Type du Commerce</td></tr>");
while ($ligne = mysql_fetch_array ($result))
{
echo("<tr>");
echo("<td bgcolor=#CCCCCC>".$ligne["NomCommerce"]."</td>&quo t;);
echo("<td bgcolor=#CCCCCC>".$ligne["AdresseCommerce"]."</td> ");
echo("<td bgcolor=#CCCCCC>".$ligne["TelCommerce"]."</td>&quo t;);
echo("<td bgcolor=#CCCCCC>".$ligne["TypeCommerce"]."</td>&qu ot;);
echo("<td bgcolor=#CCCCCC>");
echo("</tr>");
}
echo("</table>");
?>
Voila si vous y arriver....
Merci beaucoup à tous |  Profil
|
|
arnodu59 437
| Posté : 15-07-2004 09:19
Essaye donc avec ça...
Code de la page de résultat :
Avavnt le html :
<?
$nom=$HTTP_POST_VARS['nom'];
$adresse=$HTTP_POST_VARS['adresse'];
$type=$HTTP_POST_VARS['type'];
?>
Après :
<?php
$session=mysql_connect("localhost", "root", "");
$db=mysql_select_db("Mairie Pinsaguel");
if ( $allcriteres == "oui") {
$operateur="AND";
}else {
$operateur="OR";}
$finrequete = "";
if ( isset($HTTP_POST_VARS['nom'])) {
$finrequete .= " NomCommerce LIKE '%$nom%'"; }
if ( isset($HTTP_POST_VARS['adresse'])) {
$finrequete .= " $operateur (AdresseCommerce LIKE '%$adresse%' )";
}else{
$finrequete .= " (AdresseCommerce LIKE '%$adresse%' )";}
if ( isset($HTTP_POST_VARS['type'])) {
$finrequete .= " $operateur TypeCommerce LIKE '%$type%'";
}else{
$finrequete .= " TypeCommerce LIKE '%$type%'";}
$query="SELECT * FROM commerce WHERE $finrequete";
$result =mysql_query($query);
echo("<table border=1>");
echo("<tr ><td bgcolor=#99CCFF>Nom du Commerce</td><td bgcolor=#99CCFF>Adresse du Commerce</td><td bgcolor=#99CCFF>Téléphone du Commerce</td><td bgcolor=#99CCFF>Type du Commerce</td></tr>");
while ($ligne = mysql_fetch_array ($result))
{
echo("<tr>");
echo("<td bgcolor=#CCCCCC>" . $ligne["NomCommerce"] . "</td>"");
echo("<td bgcolor=#CCCCCC>" . $ligne["AdresseCommerce"] . "</td> ");
echo("<td bgcolor=#CCCCCC>" . $ligne["TelCommerce"] . "</td>"");
echo("<td bgcolor=#CCCCCC>" . $ligne["TypeCommerce"] . "</td>"");
echo("<td bgcolor=#CCCCCC>");
echo("</tr>");
}
echo("</table>");
mysql_close($session);
?>
|  Profil www
|
|
Tribal-Dolphin 4374
| Posté : 21-07-2004 09:19
Pour que ça fonctionne bien, je te conseille de mettre l'action du form en post et non en get
Car tes appels de varibles sont pas correctes !
Des fois tu utilises $_GET["nom"]; C correct dans ce cas.
Mais ça, c pas bon : $_POST["type"]; et $allcriteres => ces appels sont pour un formulaire utilisant post
Donc fait un choix entre les deux si tu veut que ça marche ! |  Profil
|
|