Aller au contenu

moteur de recherche


burinho

Sujets conseillés

j'ai pas bien compris ton dernier post, pour le premier le echo me retourne nom

Le premier echo correspond au choix que tu as fait dans la liste déroulante.

Cette variable ($chercher) peut être égale à nom, prenom, id_membre...autrement dit, la valeur de cette variable est celle du nom du champ sur lequel tu applique ta requête SQL.

Donc tu ne pourras jamais rien trouvé avec la requête telle que tu l'as définie:

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

Ce n'est pas bon.

Il faut que tu détermines, pat la liste déroulante, sur quel champ tu souhaites appliquer ta requête.

De plus, comme je te le disais dans mon post précédent, c'est ce que tu saisis dans l'input (<input type="text" name="appliq_rech" value=""> qui va servir de recherche pour ta requête. Le fait de mettre la clause name="appliq_rech" induit qu'une variable nommée $appliq_rech va être renseignée par ce que tu auras saisi.

donc, la véritable requête à passée ets bien ce que je t'avais donné:

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

$nom sera égal à ton choix/liste déroulante (en l'occurence nom) et $appliq_rech sera égal à ce que tu auras saisis comme nom ou comme partie de nom.

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Le premier echo correspond au choix que tu as fait dans la liste déroulante.

Cette variable ($chercher) peut être égale à nom, prenom, id_membre...autrement dit, la valeur de cette variable est celle du nom du champ sur lequel tu applique ta requête SQL.

Donc tu ne pourras jamais rien trouvé avec la requête telle que tu l'as définie:

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

Ce n'est pas bon.

Il faut que tu détermines, pat la liste déroulante, sur quel champ tu souhaites appliquer ta requête.

De plus, comme je te le disais dans mon post précédent, c'est ce que tu saisis dans l'input (<input type="text" name="appliq_rech" value=""> qui va servir de recherche pour ta requête. Le fait de mettre la clause name="appliq_rech" induit qu'une variable nommée $appliq_rech va être renseignée par ce que tu auras saisi.

donc, la véritable requête à passée ets bien ce que je t'avais donné:

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

$nom sera égal à ton choix/liste déroulante (en l'occurence nom) et $appliq_rech sera égal à ce que tu auras saisis comme nom ou comme partie de nom.

xpatval

<{POST_SNAPBACK}>

je compre pas trop,

mon echo renvoie le value de la liste déroulante soit nom, id_membre,adresse, cp etc.

Lien vers le commentaire
Partager sur d’autres sites

mon echo renvoie le value de la liste déroulante soit nom, id_membre,adresse, cp etc.
Oui, ok, c'est la valeur de ton choix dans la liste déroulante. Aussi, si tu exécutes ta requête telle qu'indiquée en dessous:

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

, c'est comme si tu demandais:

"select nom from membres WHERE like ...nom... !!!";
ou bien:
"select nom from membres WHERE like ...id_membre...";

Toi, ce que tu veux, c'est:

"select nom from membres WHERE like ...burinho...";
ou encore:
"select nom from membres WHERE like ...urinh...";
C'est à dire, globalement:
"SELECT '". $chercher ."' from membres WHERE LIKE '%". $appliq_rech ."%'";
"SELECT       (nom)      from membres WHERE LIKE '%  (burinho) %'";
"SELECT     (prenom)     from membres WHERE LIKE '%  (marcel) %'";
                ^                                       ^
         liste déroulante                       saisie <input>        

Est-ce que tu commences à piger ?

xpatval

Lien vers le commentaire
Partager sur d’autres sites

D'un coté, ton formulaire :

form method="POST" action="admin_rechercher.php">

<td>recherche par</td><td><input type="text" name=word size="20" maxlength="">

<selected name="select">

    <option value="id_membre">n° de membre</option>

    <option value="nom">nom</option>

    <option value="prenom">prenom</option>

    <option value="cp">code Postal</option>

    <option value="date_fin">date fin de licence</option>

    </selected>

<input type="submit" name=submit value="chercher">

    </form>

D'un autre coté, la récupération des résultats :

if(isset($_POST['submit'])){

$sql="SELECT * FROM membres;";

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

  $champ_recherche="id_memhre";

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

  $champ_recherche="cp";

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

  $champ_recherche="nom";

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

  $champ_recherche="prenom";

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

  $champ_recherche="date_fin";

$sql .=" WHERE ".$champ_recherche." LIKE '%".$_POST['word']."%'

}

Nico.

Lien vers le commentaire
Partager sur d’autres sites

Oui, ok, c'est la valeur de ton choix dans la liste déroulante. Aussi, si tu exécutes ta requête telle qu'indiquée en dessous:

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

, c'est comme si tu demandais:

"select nom from membres WHERE like ...nom... !!!";
ou bien:
"select nom from membres WHERE like ...id_membre...";

Toi, ce que tu veux, c'est:

"select nom from membres WHERE like ...burinho...";
ou encore:
"select nom from membres WHERE like ...urinh...";
C'est à dire, globalement:
"SELECT '". $chercher ."' from membres WHERE LIKE '%". $appliq_rech ."%'";
"SELECT       (nom)      from membres WHERE LIKE '%  (burinho) %'";
"SELECT     (prenom)     from membres WHERE LIKE '%  (marcel) %'";
                ^                                       ^
         liste déroulante                       saisie <input>        

Est-ce que tu commences à piger ?

oui c'est tout a fait ça que j'aimerais faire

Lien vers le commentaire
Partager sur d’autres sites

voilà je suis arrivé a faire un truc sans les listes de déroulement,

par contre je comprend pas pourquoi quand je saisie dom, il m'affiche pas tout les membre commencant par dom il en affiche que 1.

<?PHP
                       if ( isset ( $_POST['rechercher'] ) )
       {
          $sql = "SELECT * FROM membres WHERE nom like '%" .$_POST['saisie'] . "%'";
          $result = mysql_query ( $sql ) or die ( mysql_error() );^M
^M
^M
            {^M
^M
^M
            if  ( $donnees = mysql_fetch_array ( $result ) )^M
^M
                 {

       ?>
     

Lien vers le commentaire
Partager sur d’autres sites

Ce n'est pas :

  if  ( $donnees = mysql_fetch_array ( $result ) )^M

mais

while ( $donnees = mysql_fetch_array ( $result ) ){

// code

}

Nico.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...