Bonjour.
Je me permet de venir poster un message ici dans le but de trouvées une ou plusieurs réponse si possible.
Je suis entrain de créer un site ( intranet pour une entreprise ), est je cherche a faire un formulaire qui pourrai me permettre de trouver tel ou tel information stocké dans la base de donnée.
Voici mon code qui conporte des erreurs que je n'arrive pas à résoudre :
Code PHP :
<?php require_once('Connections/parc.php'); ?>
<?php
/*
Page de recherche des mots de passe
*/
$nb_rech =0;
$erreur ="";
if(isset($_POST["submit_rech"]))
{
$tab_rech=array();
if(isset($_POST["nom_poste"]) && $_POST["nom_poste"]!="")
{
$rech=$_POST["nom_poste"];
$tab_mots=explode(" ",$rech);
foreach($tab_mots as $mot)
{
$requete="SELECT * FROM `consultation` WHERE nom_poste LIKE \"%$mot%\" ";
}
}
elseif(isset($_POST["email"]) && $_POST["email"]!="")
{
$rech=$_POST["email"];
$tab_mots=explode(" ",$rech);
foreach($tab_mots as $mot)
{
$requete="SELECT * FROM `consultation` WHERE email LIKE \"%$mot%\" ";
}
}
elseif(isset($_POST["login_utilisateur"]) && $_POST["login_utilisateur"]!="")
{
$rech=$_POST["login_utilisateur"];
$tab_mots=explode(" ",$rech);
foreach($tab_mots as $mot)
{
$requete="SELECT * FROM `consultation` WHERE login_utilisateur LIKE \"%$mot%\" ";
}
}
else
{
$erreur.="Erreur un ou plusieurs champs sont vides";
}
if($erreur=="")
{
//execute la recherche
$resultat=mysql_query($requete);
while($ligne=mysql_fetch_assoc($resultat))
{
$nb_rech++;
$tab_rech[]=$ligne;
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Rechercher un poste</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<div id="header"></div>
<div id="sub_header">Le slogan par la !</div>
<div id="main_content_top"></div>
<div id="main_content">
<div class="content-rech">
<h2>Rechercher un poste de travail.</h2>
<p><?php
if($nb_rech ==0)
{
?>
<b>Menu:</b>
<?php echo "<center><font color=\"red\">$erreur</font></center>" ?>
<table>
<form name="rech" action="recherche.php" method="post">
<tr>
<td>Rechercher par nom du poste</td>
<td><input type="text" name="nom_poste" size="25" value="" />
</tr>
<tr>
<td>Rechercher par adresse email:
<td><input type="text" name="email" size="25" value="" />
</tr>
<tr>
<td>Rechercher par login:
<td><input type="text" name="login_utilisateur" size="25" value="" />
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="submit_rech" value="Go" />
<tr>
</form>
</table>
<?php
}
else
{
?>
<b>Menu:</b>
<div>
<a href="recherche.php">Nouvelle recherche</a> / <a href="index.html">Retour accueil</a>
</div>
<div>1 résultat trouvé dans la base. </div>
<br />
<table align="center">
<tr>
<td align="center">Informations générals</td>
</tr>
</table>
<table border="2" cellpadding="10" align="center">
<tr>
<th align="center">ID</th>
<th align="center">Nom du poste</th>
<th align="center">Os</th>
<th align="center">Bâtiment</th>
<th align="center">Etage</th>
<th align="center">Porte</th>
<th align="center">Prise</th>
</tr>
<?php
for($i=0;$i<$nb_rech;$i++)
{
$id=$tab_rech[$i]["id"];
$nom_poste=$tab_rech[$i]["nom_poste"];
$os=$tab_rech[$i]["os"];
$batiment=$tab_rech[$i]["batiment"];
$etage=$tab_rech[$i]["etage"];
$porte=$tab_rech[$i]["porte"];
$num_prise=$tab_rech[$i]["num_prise"];
echo "<tr>";
echo "<td align=\"center\">$id</td>";
echo "<td align=\"center\">$nom_poste</td>";
echo "<td align=\"center\">$os</td>";
echo "<td align=\"center\">$batiment</td>";
echo "<td align=\"center\">$etage</td>";
echo "<td align=\"center\">$porte</td>";
echo "<td align=\"center\">$num_prise</td>";
echo "</tr>";
}
?>
</table>
<br />
<table align="center">
<tr>
<td align="center">Informations utilisateurs</td>
</tr>
</table>
<table border="2" cellpadding="10" align="center">
<tr>
<td align="center">Service</td>
<td align="center">Email</td>
<td align="center">Login</td>
<td align="center">Password</td>
<td align="center">Application</td>
<td align="center">Commande</td>
</tr>
<?php
for($i=0;$i<$nb_rech;$i++)
{
$service=$tab_rech[$i]["service"];
$email=$tab_rech[$i]["email"];
$login_utilisateur=$tab_rech[$i]["login_utilisateur"];
$password=$tab_rech[$i]["password"];
echo "<tr>";
echo "<td align=\"center\">$service</td>";
if($email=="-")
echo "<td>-</td>";
else
echo "<td align=\"center\"><a target=\"_blank\" href=\"$email\">$email</a></td>";
echo "<td align=\"center\">$login_utilisateur</td>";
echo "<td align=\"center\">$password</td>";
echo "<td align=\"center\">";
echo "<a href=\"\" onclick=\"javascript:window.open('voir_application.php?id=$id','width=400,height=250,scrollbars=yes');\">Voir</a>";
echo "</td>";
echo "<td align=\"center\">";
echo "<a href=\"\" onclick=\"javascript:window.open('modifie_pass.php?id=$id','pass','width=400,height=250,scrollbars=yes');\">Modifier</a>";
echo "</td>";
echo "</tr>";
}
}
?>
</table>
</p>
</div>
<div id="clear"></div>
</div>
<div id="main_content_bottom">
</div>
<div id="footer"><strong>Copyright © 2010</strong> | <a href="#">Nom de l'entreprise</a> | <b>Design </b>réalier par ???</div>
</div>
</body>
</html>
Mon problème est que le formulaire fonctionne mais a moitié on va dire, car si renseigne 3 critéres de recherche et que le 1er est faux il me retournera rien ( même si le deuxiéme et juste par exemple ):cry:
Si je renseigne toujours 3 critéres de recherche et que cette fois les 3 sont correct il me donnera que le résultat du premier citére ( j'espére que j'écrit pas trop chinoi est que je suis explicite ) donc j'en conclus que la requete 1er est dominante est que les autres sont exploitatable seulement si le critére 1 n'est pas renseigné.
Comment faire pour qu'il n'y est plus ce problème ???
deuxiéme question :
Je souhaiterai si possible afficher 1 ou plusieurs résultats, dison que les 3 critéres de recherche sont correct mais qu'ils pourraient donner trois résultats différents comment réaliser cela ?
Si je vient poster ici c'est que je fait un projet d'étude et que cela est trés important pour moi j'espére vraiment trouvé de l'aide.
Merci d'avance cordialement dagny