Se connecter avec
S'enregistrer | Connectez-vous

Formulaire de recherche[résolu]

Dernière réponse : dans Programmation

Bonsoir.

Je me permet de venir ici car je fait un projet d'étude est je cherche a "créer" une application reservé au administrateur du site.

Mon probléme est que mon formulaire qui a pour but de faire une recherche ciblé par mot clé qui ne fonctionne pas.
En effet cela fait maintenant une semaine complete que je cherche seul de mon coté et je sature.
les critére de recherche son on nombre de 3 max ( le nom du poste de travail "$nom_poste", le mail "$email" et le login "$login_utilisateur")
ce qui serait fantastique c'est qu'une recherche ne ce bloque pas des qu'un résultat est trouvé, mais qu'il puisse me donner plusieurs résultat, du styll si je renseigne le nom du poste : bobo, le mail anne.kk@fefef.fr, le login gege et que c'est 3 critére de recherche appartienne a trois compte différent qu'il me les affiches dans le tableau !


Punaise je pence pas avoir trés explicite mais j'espére que je serait compris et que ici je trouverai une aide pour me donner une solution.

voici le code :

  1. <?php
  2. require_once('Connections/parc.php');
  3. if (!isset($_SESSION)) {
  4. session_start();
  5. }
  6. $MM_authorizedUsers = "";
  7. $MM_donotCheckaccess = "true";
  8.  
  9. // *** Restrict Access To Page: Grant or deny access to this page
  10. function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
  11. // For security, start by assuming the visitor is NOT authorized.
  12. $isValid = False;
  13.  
  14. // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
  15. // Therefore, we know that a user is NOT logged in if that Session variable is blank.
  16. if (!empty($UserName)) {
  17. // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
  18. // Parse the strings into arrays.
  19. $arrUsers = Explode(",", $strUsers);
  20. $arrGroups = Explode(",", $strGroups);
  21. if (in_array($UserName, $arrUsers)) {
  22. $isValid = true;
  23. }
  24. // Or, you may restrict access to only certain users based on their username.
  25. if (in_array($UserGroup, $arrGroups)) {
  26. $isValid = true;
  27. }
  28. if (($strUsers == "") && true) {
  29. $isValid = true;
  30. }
  31. }
  32. return $isValid;
  33. }
  34.  
  35. $MM_restrictGoTo = "refus.php";
  36. if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {
  37. $MM_qsChar = "?";
  38. $MM_referrer = $_SERVER['PHP_SELF'];
  39. if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  40. if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
  41. $MM_referrer .= "?" . $QUERY_STRING;
  42. $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  43. header("Location: ". $MM_restrictGoTo);
  44. exit;
  45. }
  46.  
  47. //initialise la session !
  48. if (!isset($_SESSION)) {
  49. session_start();
  50. }
  51.  
  52. // ** deconnection du serveur ! **
  53. $logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
  54. if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  55. $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
  56. }
  57.  
  58. if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  59. //to fully log out a visitor we need to clear the session varialbles
  60. $_SESSION['MM_Username'] = NULL;
  61. $_SESSION['MM_UserGroup'] = NULL;
  62. $_SESSION['PrevUrl'] = NULL;
  63. unset($_SESSION['MM_Username']);
  64. unset($_SESSION['MM_UserGroup']);
  65. unset($_SESSION['PrevUrl']);
  66.  
  67. $logoutGoTo = "logout.php";
  68. if ($logoutGoTo) {
  69. header("Location: $logoutGoTo");
  70. exit;
  71. }
  72. }
  73.  
  74. /*
  75. Page de recherche des mots de passe
  76. */
  77.  
  78. $nb_rech =0;
  79. $erreur ="";
  80.  
  81.  
  82. if(isset($_POST["submit_rech"]))
  83. {
  84. $tab_rech=array();
  85.  
  86. if(isset($_POST["nom_poste"]) && ($_POST["email"]) && ($_POST["login_utilisateur"]))
  87. {
  88. $rech=$_POST["nom_poste"];
  89. $rech=$_POST["email"];
  90. $rech=$_POST["login_utilisateur"];
  91. $tab_mots=explode(" ",$rech);
  92. foreach($tab_mots as $mot)
  93. {
  94. $requete= "SELECT * FROM `consultation` WHERE (nom_poste LIKE "%$mot%") && (email LIKE "%$mot%") && (login_utilisateur LIKE "%$mot%")";
  95. }
  96. }
  97. else
  98. {
  99. $erreur.="Erreur un ou plusieurs champs sont vides";
  100. echo $erreur;
  101. }
  102. if($erreur=="")
  103. {
  104. //execute la recherche
  105. $resultat=mysql_query($requete);
  106. while($ligne=mysql_fetch_assoc($resultat))
  107. {
  108. $nb_rech++;
  109. $tab_rech[]=$ligne;
  110. }
  111.  
  112. }
  113. }
  114.  
  115.  
  116. ?>
  117. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  118. <html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>">
  119.  
  120. <head>
  121. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  122. <title>Rechercher un poste</title>
  123. <link href="style.css" rel="stylesheet" type="text/css" />
  124. </head>
  125.  
  126. <body>
  127.  
  128. <div id="container">
  129.  
  130. <div id="header"></div>
  131.  
  132. <div id="sub_header">Le slogan par la !</div>
  133.  
  134. <div id="main_content_top"></div>
  135.  
  136. <div id="main_content">
  137. <div class="menu">
  138. <div class="menu_title">Menu Général</div>
  139. <ul>
  140. <li><a href="index.html">Accueil</a></li>
  141. </ul>
  142. </div>
  143. <div class="menu">
  144. <div class="menu_title">Menu Connecxion</div>
  145. <ul>
  146. <li><a href="<?php echo $logoutAction ?>">Deconnectez-vous !</a></li>
  147. <li><a href="pwd_lost.php">Mot de passe perdu ?</a></li>
  148. <li><a href="change_pwd.php">Changer mot de passe.</a></li>
  149. </ul>
  150. </div>
  151. <div class="menu">
  152. <div class="menu_title">Menu Recherche</div>
  153. <ul>
  154. <li><a href="recherche.php">Rechercher un poste.</a></li>
  155. <li><a href="ajout.php">Ajouter un poste.</a></li>
  156. <li><a href="modifier.php">Modifier un poste.</a></li>
  157. </ul>
  158. </div>
  159.  
  160. <div class="content-rech">
  161. <h2>Rechercher un poste de travail.</h2>
  162. <p><?php
  163. if($nb_rech ==0)
  164. {
  165. //echo "<center><font color="red">$erreur</font></center>"
  166. ?>
  167. <table>
  168. <form name="rech" action="recherche.php" method="post">
  169. <tr>
  170. <td>Rechercher par nom du poste</td>
  171. <td><input type="text" name="nom_poste" size="25" value="" />
  172. </tr>
  173. <tr>
  174. <td>Rechercher par adresse email:
  175. <td><input type="text" name="email" size="25" value="" />
  176. </tr>
  177. <tr>
  178. <td>Rechercher par login:
  179. <td><input type="text" name="login_utilisateur" size="25" value="" />
  180. </tr>
  181. <tr>
  182. <td colspan="2" align="right"><input type="submit" name="submit_rech" value="Go" />
  183. <tr>
  184. </form>
  185. </table>
  186. <?php
  187. }
  188. else
  189. {
  190. ?>
  191. <div>
  192. <a href="recherche.php">Nouvelle recherche</a></div>
  193.  
  194. <div>1 résultat trouvé dans la base. </div>
  195. <br />
  196. <table align="center">
  197. <tr>
  198. <td align="center">Informations générals</td>
  199. </tr>
  200. </table>
  201. <table border="2" cellpadding="10" align="center">
  202. <tr>
  203. <th align="center">ID</th>
  204. <th align="center">Nom du poste</th>
  205. <th align="center">Os</th>
  206. <th align="center">Bâtiment</th>
  207. <th align="center">Etage</th>
  208. <th align="center">Porte</th>
  209. <th align="center">Prise</th>
  210. </tr>
  211. <?php
  212. for($i=0;$i<$nb_rech;$i++)
  213. {
  214. $id=$tab_rech[$i]["id"];
  215. $nom_poste=$tab_rech[$i]["nom_poste"];
  216. $os=$tab_rech[$i]["os"];
  217. $batiment=$tab_rech[$i]["batiment"];
  218. $etage=$tab_rech[$i]["etage"];
  219. $porte=$tab_rech[$i]["porte"];
  220. $num_prise=$tab_rech[$i]["num_prise"];
  221.  
  222. echo "<tr>";
  223. echo "<td align="center">$id</td>";
  224. echo "<td align="center">$nom_poste</td>";
  225. echo "<td align="center">$os</td>";
  226. echo "<td align="center">$batiment</td>";
  227. echo "<td align="center">$etage</td>";
  228. echo "<td align="center">$porte</td>";
  229. echo "<td align="center">$num_prise</td>";
  230. echo "</tr>";
  231. }
  232. ?>
  233. </table>
  234. <br />
  235. <table align="center">
  236. <tr>
  237. <td align="center">Informations utilisateurs</td>
  238. </tr>
  239. </table>
  240. <table border="2" cellpadding="10" align="center">
  241. <tr>
  242. <td align="center">Service</td>
  243. <td align="center">Email</td>
  244. <td align="center">Login</td>
  245. <td align="center">Password</td>
  246. <td align="center">Application</td>
  247. <td align="center">Commande</td>
  248. </tr>
  249. <?php
  250. for($i=0;$i<$nb_rech;$i++)
  251. {
  252.  
  253. $service=$tab_rech[$i]["service"];
  254. $email=$tab_rech[$i]["email"];
  255. $login_utilisateur=$tab_rech[$i]["login_utilisateur"];
  256. $password=$tab_rech[$i]["password"];
  257.  
  258. echo "<tr>";
  259. echo "<td align="center">$service</td>";
  260.  
  261. if($email=="-")
  262. echo "<td>-</td>";
  263. else
  264. echo "<td align="center"><a target="_blank" href="$email">$email</a></td>";
  265.  
  266. echo "<td align="center">$login_utilisateur</td>";
  267. echo "<td align="center">$password</td>";
  268. echo "<td align="center">";
  269. echo "<a href="" onclick="javascript:window.open('voir_application.php?id=$id','width=400,height=250,scrollbars=yes');">Voir</a>";
  270. echo "</td>";
  271. echo "<td align="center">";
  272. echo "<a href="" onclick="javascript:window.open('modifie_pass.php?id=$id','pass','width=400,height=250,scrollbars=yes');">Modifier</a>";
  273. echo "</td>";
  274. echo "</tr>";
  275. }
  276. }
  277. ?>
  278. </table>
  279. </p>
  280. </div>
  281. <div id="clear"></div>
  282.  
  283. </div>
  284.  
  285. <div id="main_content_bottom">
  286. </div>
  287.  
  288. <div id="footer"><strong>Copyright © 2010</strong> | <a href="merci.php">Dagny Corporate</a> | <b>Design </b>réalier par Garau Alexandre</div>
  289.  
  290. </div>
  291.  
  292. </body>
  293.  
  294. </html>

Autres pages sur : formulaire recherche resolu

Lassé par la pub ? Créez un compte

Meilleure solution

Modifier la requete !
  1. $requete= "SELECT * FROM `consultation` WHERE (nom_poste LIKE \"%$mot1%\") OR (email LIKE \"%$mot2%\") OR (login_utilisateur LIKE \"%$mot3%\")";

et declarer les variables.
  1. $mot1=$_POST["nom_poste"];
  2. $mot2=$_POST["email"];
  3. $mot3=$_POST["login_utilisateur"];

effectivement sa fonctionne mais toujours avec le même problème en fait.

Si je rempli le champ nom_poste, email, login_utilisateur la condition est rempli on passe bien a la requete mais seul le champ 3 donne une reponse !

J'ai créer deux exemple dans ma bdd un qui est le nom_poste Alex ( avec le reste des renseignement le concernant ) et l'autre qui est Anne ( avec le reste des renseignement le concernant )
Si je rempli les champ de cette facon :

nom_poste(champ1) = Alex
email(champ2) = Alex
login_utilisateur(champ3) = Anne

Il me donnera seulement le resultat de anne dans le tableau alors que je souhaiterai qu'il me sorte le resultat de ALEX ET ANNE.

Autre exemple :

nom_poste(champ1) = Anne
email(champ2) = Alex
login_utilisateur(champ3) = Toto

La il me retournera rien car toto existe pas dans la bdd mais il a oublier que Alex et Anne eu existe est qu'il aurai du me donner le resultat.

Quel solution existe il ?
Lassé par la pub ? Créez un compte