burinho Posté 13 Mars 2005 Posté 13 Mars 2005 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)) { ?>
Anonymus Posté 13 Mars 2005 Posté 13 Mars 2005 <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'
burinho Posté 13 Mars 2005 Auteur Posté 13 Mars 2005 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)) { ?>
Anonymus Posté 13 Mars 2005 Posté 13 Mars 2005 En supposant que tu n'ais pas ca : ^M dans le code 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.
burinho Posté 13 Mars 2005 Auteur Posté 13 Mars 2005 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 ";
xpatval Posté 13 Mars 2005 Posté 13 Mars 2005 $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
burinho Posté 13 Mars 2005 Auteur Posté 13 Mars 2005 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>
xpatval Posté 13 Mars 2005 Posté 13 Mars 2005 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
Portekoi Posté 13 Mars 2005 Posté 13 Mars 2005 (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é 13 Mars 2005 par portekoi
burinho Posté 13 Mars 2005 Auteur Posté 13 Mars 2005 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 !!!
burinho Posté 13 Mars 2005 Auteur Posté 13 Mars 2005 Salut, Il sert à quoi ton <input type="text" size="20" maxlength=""> juste avant ton select? il sert à pouvoir saisir une recherche
xpatval Posté 13 Mars 2005 Posté 13 Mars 2005 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
burinho Posté 13 Mars 2005 Auteur Posté 13 Mars 2005 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%'
xpatval Posté 13 Mars 2005 Posté 13 Mars 2005 Dans quelle page effectues-tu (tutu?) ta requête ? xpatval
burinho Posté 13 Mars 2005 Auteur Posté 13 Mars 2005 Dans quelle page effectues-tu (tutu?) ta requête ? xpatval <{POST_SNAPBACK}> bein, dans la page admin_rechercher.php
xpatval Posté 13 Mars 2005 Posté 13 Mars 2005 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
smile Posté 13 Mars 2005 Posté 13 Mars 2005 (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é 13 Mars 2005 par smile
burinho Posté 13 Mars 2005 Auteur Posté 13 Mars 2005 (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é 14 Mars 2005 par Dan
xpatval Posté 14 Mars 2005 Posté 14 Mars 2005 Deux choses: 1- vire le <input type=text> 2- es-tu en register_globals = OFF ou ON ? xpatval
burinho Posté 14 Mars 2005 Auteur Posté 14 Mars 2005 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
Portekoi Posté 14 Mars 2005 Posté 14 Mars 2005 (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é 14 Mars 2005 par portekoi
xpatval Posté 14 Mars 2005 Posté 14 Mars 2005 (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é 14 Mars 2005 par xpatval
burinho Posté 14 Mars 2005 Auteur Posté 14 Mars 2005 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
Portekoi Posté 14 Mars 2005 Posté 14 Mars 2005 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)
burinho Posté 14 Mars 2005 Auteur Posté 14 Mars 2005 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant