xpatval Posté 14 Mars 2005 Posté 14 Mars 2005 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
burinho Posté 14 Mars 2005 Auteur Posté 14 Mars 2005 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.
xpatval Posté 14 Mars 2005 Posté 14 Mars 2005 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
Anonymus Posté 14 Mars 2005 Posté 14 Mars 2005 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.
burinho Posté 14 Mars 2005 Auteur Posté 14 Mars 2005 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
burinho Posté 15 Mars 2005 Auteur Posté 15 Mars 2005 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 { ?>
Anonymus Posté 15 Mars 2005 Posté 15 Mars 2005 Ce n'est pas : if ( $donnees = mysql_fetch_array ( $result ) )^M mais while ( $donnees = mysql_fetch_array ( $result ) ){ // code } Nico.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant