Jump to content
Sign in to follow this  
burinho

moteur de recherche

Rate this topic

Recommended Posts

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

Share this post


Link to post
Share on other 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:

Share this post


Link to post
Share on other 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))
                                                                         {
                                                                       ?>

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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 ";

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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>

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Edited by portekoi

Share this post


Link to post
Share on other 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 !!!

Share this post


Link to post
Share on other sites
Salut,

Il sert à quoi ton

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

juste avant ton select?

il sert à pouvoir saisir une recherche

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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%'

Share this post


Link to post
Share on other sites

:nono:

Dans quelle page effectues-tu (tutu?) ta requête ?

xpatval

Share this post


Link to post
Share on other sites
:nono:

Dans quelle page effectues-tu (tutu?) ta requête ?

xpatval

<{POST_SNAPBACK}>

bein, dans la page admin_rechercher.php

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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
}

Edited by smile

Share this post


Link to post
Share on other sites
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''];

Edited by Dan

Share this post


Link to post
Share on other sites

Deux choses:

1- vire le <input type=text>

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

xpatval

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Edited by portekoi

Share this post


Link to post
Share on other 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

Edited by xpatval

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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)

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...