Aller au contenu

moteur de recherche


burinho

Sujets conseillés

bonjour,

j'essaye de faire une interface admin, afin de pouvoir faire des modifications dans les comptes des membres, j'ai créé un moteur de recherche pas catégorie.

pour l'instant j'ai testé qu'une catégorie mais ça marche pas.

un peu d'aide serait la bienvenue

form method="POST" action="admin_rechercher.php">
   <td>recherche par</td><td><input type="text" size="20" maxlength="">
   <selected name="chercher">
    <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" value="chercher">
   
   </form>

<?php

                       if(($chercher))
                      {
                         if($chercher=="nom")
                          {
                              $sql="SELECT * FROM membres;";

                                if($result=mysql_query($sql))
                                {
          if ($donnees=mysql_fetch_array($result))
          {
 ?>

Lien vers le commentaire
Partager sur d’autres sites

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

Mettre :

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

<selected name="chercher">

mettre :

<select name="chercher">

if(($chercher))

Mettre :

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

if($chercher=="nom")

mettre :

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

etc..

A tout appeler 'chercher', le programme finit par ne pas ce qu'il doit 'schtroumpfer' :lol:

Lien vers le commentaire
Partager sur d’autres sites

donc si je te comprend bien cela donnerais ça!!! mais ca marche pas

 <form method="POST" action="admin_rechercher.php">
                               <td>recherche par</td><td><input type="text" size="20" maxlength="">
                               <select name="chercher">
                                <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>
                                </select>
                               <input type="submit" name=submit value="chercher">

<?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))
                                                                         {
                                                                       ?>

Lien vers le commentaire
Partager sur d’autres sites

En supposant que tu n'ais pas ca : ^M

dans le code :lol:

Il faudrait que tu corriges cette ligne :

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

Soit :

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

soit $sql="SELECT nom FROM membres ";

Mais.. C'est pour une interface d'administration ?

Les champs doivent correspondre exactement. Tu ne peux pas dire :

C'est la bonne personne si c'est : Dan, ou Daniel, ou Danielle, etc..

Bref, il faut éviter, dans ce cas, de mettre les % % dans les termes de recherche de ta requète.

Ce qui donnerait :

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

Nico.

Lien vers le commentaire
Partager sur d’autres sites

Mais.. C'est pour une interface d'administration ?

Les champs doivent correspondre exactement. Tu ne peux pas dire :

C'est la bonne personne si c'est : Dan, ou Daniel, ou Danielle, etc..

Bref, il faut éviter, dans ce cas, de mettre les % % dans les termes de recherche de ta requète.

Ce qui donnerait :

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

oui c'est pour une interface admin.

pour ce qui est de ^M c'est parceque sur mon easy php j'arrive pas a me connecter sur ma base donc je transferre le tout sur VI sous linux et il m'affiche plein ^M.

sinon avec tes modifs, le programme est exécuté completement sauf qu'il affiche rien juste votre requette n'a pas abboutie.

j'ai eu le meme probleme quand j'ai simplifié ma requette hier

$sql="SELECT nom FROM membres ";

Lien vers le commentaire
Partager sur d’autres sites

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

Losque tu fais cela, et que tu fais ceci juste après:

print "sql=". $sql;

, que te donne le print ?

De plus, ta liste déroulante est renseignée de quelle façon ?

xpatval

Lien vers le commentaire
Partager sur d’autres sites

tu veux dire comme ça

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

car cela de donne rien

sinon ma liste ressembre à ça

<form method="POST" action="admin_rechercher.php">
                               <td>recherche par</td><td><input type="text" size="20" maxlength="">
                               <select name="chercher">
                                <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>
                                </select>
                               <input type="submit" name=submit value="chercher">


                                       </form>

Lien vers le commentaire
Partager sur d’autres sites

SELECT nom FROM membres WHERE nom like "un nom qui existe dans ta table"

En remplaçant "un nom qui existe dans ta table" par ce qu'il faut, et cette requête directement passé dans phpmyadmin, qu'est-ce que cela donne ?

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Il sert à quoi ton

<input type="text" size="20" maxlength="">

juste avant ton select?

Et au lieu de faire

 if(($chercher))
                     {
                        if($chercher=="nom")
                         {

Tu devrais faire :

switch ($_POST['submit'])
{
case "nom";
//exécute ton code
break;
case "id";
//exécude ton code
break;
default:
//Code à exécuter dans les autres cas
}

Je suis pas sûr de la syntaxe ^_^; si quelqu'un pouvait confirmer :)

A bientôt

Portekoi

Modifié par portekoi
Lien vers le commentaire
Partager sur d’autres sites

SELECT nom FROM membres WHERE nom like "un nom qui existe dans ta table"

En remplaçant "un nom qui existe dans ta table" par ce qu'il faut, et cette requête directement passé dans phpmyadmin, qu'est-ce que cela donne ?

il m'affiche le nom en question !!!

Lien vers le commentaire
Partager sur d’autres sites

il m'affiche le nom en question !!!

Donc, il faut que tu vérifies que le paramètre est bien passé entre ta page où se trouve ton select, et la page admin_rechercher.php.

echo "chercher=". $_POST['chercher']; (dans admin_rechercher.php)

Si la variable ne te retourne aucune valeur, alors le problème est en amont

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Donc, il faut que tu vérifies que le paramètre est bien passé entre ta page où se trouve ton select, et la page admin_rechercher.php.

echo "chercher=". $_POST['chercher']; (dans admin_rechercher.php)

Si la variable ne te retourne aucune valeur, alors le problème est en amont

xpatval

<{POST_SNAPBACK}>

voilà ce qui me retourne :

sql=SELECT nom FROM membres WHERE like '%chercher%'

Lien vers le commentaire
Partager sur d’autres sites

Et ton <select><option></select> est dans une autre page ?

Si c'est le cas, lorsque tu sélectionnes une option (par exemple: nom), tu appelles donc ta page admin_rechercher.php. La variable est passée via la méthode POST. Donc, dans admin_rechercher.php, cette variable ($submit), est normalement renseignée.

Ce pourquoi je te demandais de faire une echo $_POST['submit'] en début de script, afin de voit s'il te retourne la valeur correspondante à ton choix dans la liste déroulante. Est-ce le cas ?

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Tu devrais faire :

switch ($_POST['submit'])
{
case "nom";
//exécute ton code
break;
case "id";
//exécude ton code
break;
default:
//Code à exécuter dans les autres cas
}

Je suis pas sûr de la syntaxe ^_^; si quelqu'un pouvait confirmer :)

A bientôt

Portekoi

<{POST_SNAPBACK}>

ca me parait judicieux mais c'est : et non ;

   switch ($_POST['submit'])
{
case "nom":
//exécute ton code
break;
case "id":
//exécude ton code
break;
default:
//Code à exécuter dans les autres cas
}

Modifié par smile
Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)
Et ton <select><option></select> est dans une autre page ?

c'est exact,

c'est ma page ci-dessous admin_compte.php

<div id="global">
                               <div id="page">
                               <tr>
                               <form method="POST" action="admin_rechercher.php">
                               <td>recherche par</td><td><input type="text" size="20" maxlength="">
                               <select name="chercher">
                                <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>
                                </select>
                               <input type="submit" name=submit value="chercher">


                                       </form>
                                       </td>

et qui doit appeler ma page admin_rechercher.php

qui contien le script du moteur de recherche.

est ce qu'il faut pas lui dire quelque part

$submit=$_POST['submit''];

Modifié par Dan
Lien vers le commentaire
Partager sur d’autres sites

Deux choses:

1- vire le <input type=text>

2- es-tu en register_globals = OFF ou ON ?

xpatval

<{POST_SNAPBACK}>

si je vire le input type=text comment je vais faire pour saisir une recherche

c'est quoi reegister_global=OFF ou ON

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Smile : Merci pour la correction :)

Burinho : Ton

><input type="text" size="20" maxlength="">

ne sert à rien car la clause name n'est pas remplie.

Vire ce champs, et dans ta page de traitement, fais juste un

Echo $_POST["chercher"];

et dis moi ce qu'il affiche.

Modifié par portekoi
Lien vers le commentaire
Partager sur d’autres sites

Tu dois dans ce cas indiquer un name="" dans l'input:

form method="POST" action="admin_rechercher.php">
  <td>recherche par</td><td><input type="text" name="appliq_rech" size="20" maxlength="">
  <selected name="chercher">
   <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" value="chercher">
</form>

Ta requête deviendrait dans ce cas (à tester):

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

xpatval

Modifié par xpatval
Lien vers le commentaire
Partager sur d’autres sites

Salut,

Smile : Merci pour la correction :)

Burinho : Ton

><input type="text" size="20" maxlength="">

ne sert à rien car la clause name n'est pas remplie.

Vire ce champs, et dans ta page de traitement, fais juste un

Echo $_POST["chercher"];

et dis moi ce qu'il affiche.

<{POST_SNAPBACK}>

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

Lien vers le commentaire
Partager sur d’autres sites

Export ta table sql et envoie moi ton script sur mon mail portekoi_AT_passion-cinquieme.com , ca sera plus simple. Je regarderais ce soir :)

A moins que quelqu'un puisse le faire de suite car moi, j'ai pas PHP au taf :( (hélas d'ailleurs)

Lien vers le commentaire
Partager sur d’autres sites

Export ta table sql et envoie moi ton script sur mon mail portekoi_AT_passion-cinquieme.com , ca sera plus simple. Je regarderais ce soir :)

A moins que quelqu'un puisse le faire de suite car moi, j'ai pas PHP au taf :( (hélas d'ailleurs)

<{POST_SNAPBACK}>

ok je vais te faire ça

par contre sur ma base il ya des nom fictif de test

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...