Formulaire de recherche multi critere
Posté : 23 sept. 2011, 09:28
Salut !!
Bon un autre problème se pose a moi, je veux créer un formulaire ou l'utilisateur pourra remplir les champs qu'il veut. En fonction des champs renseignés la base de donnée devra retourner un tableau avec l'ensemble des données correspondant au critère (que ce soit avec un OR ou un AND)
J'ai deja bien avancé mais le probleme c'est que quand un champs n'est pas renseigné bah dans la requete mysql ca fais un champs a 0 donc avec un AND ca fout tout en l'air. Et avec un OR ca me donne pas ce que je veux car je veux que ca me retourne les lignes ou tout les criteres sont validés.
J'espere que je suis claire. Je vous montre ce que j'ai :
Voila mon formulaire sur la page prendre_BDD.php
Bon un autre problème se pose a moi, je veux créer un formulaire ou l'utilisateur pourra remplir les champs qu'il veut. En fonction des champs renseignés la base de donnée devra retourner un tableau avec l'ensemble des données correspondant au critère (que ce soit avec un OR ou un AND)
J'ai deja bien avancé mais le probleme c'est que quand un champs n'est pas renseigné bah dans la requete mysql ca fais un champs a 0 donc avec un AND ca fout tout en l'air. Et avec un OR ca me donne pas ce que je veux car je veux que ca me retourne les lignes ou tout les criteres sont validés.
J'espere que je suis claire. Je vous montre ce que j'ai :
Voila mon formulaire sur la page prendre_BDD.php
<form method="post" action="ciblebis.php">
<p>
Type du materiel : <br />
<select name="type_materiel" value="Choisissez">
<option value="" selected="selected"></option>
<option>Routeur</option>
<option>Switch</option>
<option>Parfeu</option>
</select><br />
Systeme/OS : <br />
<select name="systeme_OS">
<option value="" selected="selected"></option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select><br />
Lieu : <br />
<select name="lieu">
<option value="" selected="selected"></option>
<option>Lieu 1</option>
<option>Lieu 2</option>
<option>Lieu 3</option>
</select><br />
Opérationnel ou Secours : <br />
<select name="ope_sec">
<option value="" selected="selected"></option>
<option>Opérationnel</option>
<option>Secours</option>
</select><br />
<input type="submit" value="Valider" /><br />
Voila la parti traitement de la base mysql :<?php
$host = "127.0.0.1";
$user = "Benoit";
$pass = "xxxx";
$bdd = "config_reseaux";
//Test si les $_POST sont vides
//if (!empty($_POST['type_materiel']))
//{
$type_materiel = $_POST["type_materiel"];
//}
//if (!empty($_POST['systeme_OS']))
//{
$systeme_OS = $_POST["systeme_OS"];
//}
//if (!empty($_POST['lieu']))
//{
$lieu = $_POST["lieu"];
//}
//if (!empty($_POST['ope_sec']))
//{
$ope_sec = $_POST["ope_sec"];
//}
// connexion
$cnx = mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
$db = mysql_select_db("$bdd") or die("Impossible de se connecter");
if (mysql_connect ($host,$user,$pass))
{
echo 'Connexion réussie'; echo '<br>';
}
else
{
echo 'Connexion impossible...'.mysql_error(); echo '<br>';
}
$sql = "SELECT * FROM bdd WHERE type_materiel = '$type_materiel' OR systeme_OS = '$systeme_OS' OR lieu = '$lieu' OR ope_sec = '$ope_sec'ORDER BY nom_fichier";
$requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
//récupération avec mysql_fetch_array(), et affichage de nos résultats :
echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">\n" );
echo( "<tr>
<td><div align=\"center\">Nom du fichier</div></td>
<td><div align=\"center\">Type de materiel</div></td>
<td><div align=\"center\">Systeme/OS</div></td>
<td><div align=\"center\">Lieu</div></td>
<td><div align=\"center\">Operationnel/Secours</div></td>
</tr>" );
while( $result = mysql_fetch_array( $requete ) )
{
echo( "<tr>\n" );
echo( "<td><div align=\"center\">".$result["nom_fichier"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["type_materiel"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["systeme_OS"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["lieu"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["ope_sec"]."</div></td>\n" );
/*echo( "<td><div align=\"center\"><form method='post' action='telechargement.php'><input type='submit' value='Telechargement'/></form></div></td>\n" );*/
echo( "</tr>\n" );
}
echo( "</table><br>\n" );
?>
Merci de votre aide !!