Aller au contenu

Sujets conseillés

Posté

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

Posté
<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:

Posté

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

Posté

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.

Posté
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 ";

Posté
$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

Posté

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>

Posté

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

Posté (modifié)

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
Posté
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 !!!

Posté
Salut,

Il sert à quoi ton

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

juste avant ton select?

il sert à pouvoir saisir une recherche

Posté
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

Posté
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%'

Posté

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

Posté (modifié)
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
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
Posté

Deux choses:

1- vire le <input type=text>

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

xpatval

Posté
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

Posté (modifié)

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
Posté (modifié)

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
Posté
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

Posté

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

Veuillez vous connecter pour commenter

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



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