mon moteur recherche ne fonctionne pas

mon moteur recherche ne fonctionne pas - PHP - Programmation

Marsh Posté le 14-03-2005 à 12:09:10    

voilà j'ai créer un code html pour créer un moteur de recherche, qui renvoie le résultat vers un  fichier resultat.php.
 
mais je comprend pas pourquoi cela ne fonctionne pas
 
 

Code :
  1. form method="POST" action="admin_rechercher.php">
  2.   <td>recherche par</td><td><input type="text" name="appliq_rech" size="20" maxlength="">
  3.   <selected name="chercher">
  4.    <option value="id_membre">n° de membre</option>
  5.    <option value="nom">nom</option>
  6.    <option value="prenom">prenom</option>
  7.    <option value="cp">code Postal</option>
  8.    <option value="date_fin">date fin de licence</option>
  9.    </selected>
  10.   <input type="submit" value="chercher">
  11. </form>


 
 
[code]
 
<?php
 
                       if($_POST['submit']=="chercher" )
                      {
                         if($_POST['chercher']=="nom" )
                          {
                              $sql="SELECT nom  FROM membres WHERE like '%".chercher."%'";
^M
                                if($result=mysql_query($sql))^M
                                {^M
                                                                         if ($donnees=mysql_fetch_array($result))
                                                                         {
                                                                       ?>
 
[\code]

Reply

Marsh Posté le 14-03-2005 à 12:09:10   

Reply

Marsh Posté le 14-03-2005 à 12:21:10    

dodo a écrit :

[code]$sql="SELECT nom  FROM membres WHERE like '%".chercher."%'";[\code]


il manque un $
et attention ta recherche va faire un full scan sur la table, pas très bon pour les performances.

Reply

Marsh Posté le 14-03-2005 à 13:28:56    

en fait il doit surement t'en manquer plusieurs
quand tu fais  

Citation :

if($_POST['submit']=="$chercher" )


 
a chaque rajoute et de même tu peux faire

Citation :

$sql="SELECT nom  FROM membres WHERE like '%$chercher%'";


voila  ;)

Reply

Marsh Posté le 14-03-2005 à 13:31:15    

zeal21 a écrit :

en fait il doit surement t'en manquer plusieurs
quand tu fais  

Citation :

if($_POST['submit']=="$chercher" )




totalement faux :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 14-03-2005 à 13:47:33    

Plein de petites erreurs/horreurs
 

Code :
  1. <select name="chercher"> // et pas <selected>


 
Ensuite sur quoi tu fais ta recherche ?
Sur le champ texte, non ?
 
Donc

Code :
  1. if (isset($_POST['appliq_rech']))
  2.   {
  3.   $appliq_rech=$_POST['appliq_rech'];
  4.   }
  5. else
  6.   {
  7.   $appliq_rech='';
  8.   }


 
A partir de là

Code :
  1. //WHERE qqch LIKE qqch
  2. $sql="SELECT nom FROM membres WHERE nom LIKE '%$appliq_rech%'";


 
Enfin c'est un début, y aurait plein de petites choses à améliorer mais ça devrait te permettre de commencer tes tests.
 
C'est voulu que le <select> ait le même nom que le submit ?  
Moi j'éviterais a priori !


Message édité par deliriumtremens le 14-03-2005 à 13:52:27
Reply

Marsh Posté le 14-03-2005 à 14:00:17    

ok je vais tester tout cela

Reply

Marsh Posté le 14-03-2005 à 14:19:07    

mais ça pas l'air de fonctionner,  ne faut t-il pas préciser dans le form appliq_rech

Reply

Marsh Posté le 14-03-2005 à 14:48:29    

Tu as des messages d'erreur ou juste aucun résultat ?
 
Balance un peu le code de tes 2 pages pour voir...
 
EDIT : au fait, si tu veux que le résultat apparaisse sur la page resultat.php, tu sais que l'action de ton formulaire doit être resultat.php, on est d'accord ?

Code :
  1. <form method="post" action="resultat.php">


Message édité par deliriumtremens le 14-03-2005 à 14:50:44
Reply

Marsh Posté le 14-03-2005 à 15:04:53    

deliriumtremens : erreur, il n'a pas deux meme nom de champ : select s'appelle Chercher, et le submit n'a pas de nom, value c'est la valeur du controle
 
bon alors petit topo :
ne pas se servir de la valeur d'un bouton submit pour vérifier s'il a été cliqué : si tu modifie ton libellé tu dois modifier tout ton code
il faut passer par le nom du controle :
<input type="submit" name="monsubmit" value="ma valeur" />
 
-> if (isset($_POST['monsubmit']) { /* traitement */ }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed