volubilis Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 Bonjour, Je suis debutant en php et mysql et J'ai fais une requete qui si j'en crois ce que j'ai lu à droite et a gauche devrait me ressortir des valeurs contenu dans une base de donnée sur mon serveur mais ca me ressort rien ! Extrait au dessus j'ai l etablissement de la connection a ma base $reponse = mysql_query("SELECT * FROM artistes WHERE nom like '".$_POST['nom']."'"); while ($donnees = mysql_fetch_array($reponse) ){// on affiche les informations de l'enregistrement en cours echo '<b>'.$donnees['nom'].' '.$donnees['type'].'</b>)'; }?><?phpmysql_close();?> et mon formulaire de saisie <form action="search.php" method="post"><input type="text" name="nom" size="25" maxlength="40" value=" Recherchez sur le site"> <input type="submit" value="Go" style="background-color: #FF3810;"></form></TD> merci c laborieux !!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 Bonjour, Une question bête : J'imagine que tu mets une valeur dans la case "nom" pour ne pas envoyer " Recherchez sur le site" ? As-tu essayé de faire un "echo $_POST['nom'];" en haut de search.php ? Et tu devrais ajouter les caractères '%' de part et d'autre de $_POST['nom'] comme ceci: echo "SELECT * FROM artistes WHERE nom like '%".$_POST['nom']."%'"; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 (modifié) Bonjour, Si tu fais ceci au dessus de ta requête : echo "SELECT * FROM artistes WHERE nom like '".$_POST['nom']."'"; Et que tu colles ce qui est affiché dans phpMyadmin, est ce que la requete fonctionne? Portekoi Edit : Encore doublé Modifié 7 Décembre 2005 par Portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 Edit : Encore doublé C'est assez courant d'oublier le wildcar % lors de l'utilisation de like like 'toto' ne retournera que les champs qui contiennent exactement 'toto' (peu importe la casse) mais pas ceux qui contiennent 'toto est sage' Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 J'ai essayé la commande echo mais voila ce qu'il me retourne SELECT * FROM artistes WHERE nom like '%%' ) ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 Tu as une version de php inférieure à la 4.1.0 ? Essaies en remplaçant $_POST['nom'] par $HTTP_POST_VARS['nom'] et dis-nous ce que cela donne Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 echo "SELECT * FROM artistes WHERE nom like '%".$_POST['nom']."%'"; <{POST_SNAPBACK}> j'ai essayé echo "SELECT * FROM artistes WHERE nom like '%".$_POST['nom']."%'"; avant ca $reponse = mysql_query("SELECT * FROM artistes WHERE nom like '%".$_POST['nom']."%'"); et voila ce qu'il me retourne SELECT * FROM artistes WHERE nom like '%% apres ca $reponse = mysql_query("SELECT * FROM artistes WHERE nom like '%".$_POST['nom']."%'"); j'ai le meme message et tout mes noms qui apparaissent Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 voila ce que j'ai maintenant mysql_select_db("db0184601"); // Sélection de la base coursphp echo "SELECT * FROM artistes WHERE nom like '%".$HTTP_POST_VARS['nom']."%'"; $reponse = mysql_query("SELECT * FROM artistes WHERE nom like '%".$HTTP_POST_VARS['nom']."%'"); et toujours ce message SELECT * FROM artistes WHERE nom like '%%'billy crawford concert)boney m concert)billy crawford interview)tryo interview)magic system interview)hocus pocus festival)salif keita festival)the pretenders festival)enrico macias festival)renaud festival)..... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 C'est logique si $_POST['nom'] n'est pas défini. le like '%%' donne tous les noms. Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 en theorie il doit l'etre puisque je le rentre à partir de mon formulaire ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
NorSeb Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 Bonjour, en theorie il doit l'etre puisque je le rentre à partir de mon formulaire ! <{POST_SNAPBACK}> Visiblement, tu as loupé le post dans lequel Dan te demande d'ecrire le même code en remplacant $_POST['nom'] par $HTTP_POST_VARS['nom'] Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 non c bon à moins que j'ai rater qq chose, je suis sur Php que depuis hier desolé si je vous parais dure de la feuille ! contenu de mon fichier search.php echo "SELECT * FROM artistes WHERE nom like '%".$HTTP_POST_VARS['nom']."%'"; $reponse = mysql_query("SELECT * FROM artistes WHERE nom like '%".$HTTP_POST_VARS['nom']."%'"); Lien vers le commentaire Partager sur d’autres sites More sharing options...
NorSeb Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 Et le résultat ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 et toujours ce message SELECT * FROM artistes WHERE nom like '%%'billy crawford concert)boney m concert)billy crawford interview)tryo interview)magic system interview)hocus pocus festival)salif keita festival)the pretenders festival)enrico macias festival)renaud festival)..... Lien vers le commentaire Partager sur d’autres sites More sharing options...
NorSeb Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 Pardonne moi cette question idiote mais : lorsque tu fait un test, tu rempli bien ton formulaire à chaque fois n'est-ce-pas ? On sait jamais... Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 oui j'ai qu'un seul champ de recherche Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 Si dans ton formulaire de recherche tu as bien: <form action="search.php" method="post"> cela signifie que tu définis 'post' comme méthode pour celui-ci. Les variables seront donc accessibles dans le fichier défini comme action, soit dans $HTTP_POST_VARS[] soit dans $_POST[]. Ce dernier tableau $_POST[] n'existe que dans les versions de php >= 4.1.0 Tu as quelle version de Php ? Le fait que la requête te donne tous les noms vient de "like '%%' " , ce caractère % signifiant 'tout caractère'. Ta requête est donc bonne et mysql fonctionne correctement. C'est juste ta variable $_POST['nom'] qui n'est pas définie. Utilises-tu bien la même casse (majuscule/minuscule) pour "nom" partout dans ton programme ? Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 norseb fais un essai si tu veux sur mon site www.volubilis.net en haut a droite Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 Si dans ton formulaire de recherche tu as bien:<form action="search.php" method="post"> cela signifie que tu définis 'post' comme méthode pour celui-ci. Les variables seront donc accessibles dans le fichier défini comme action, soit dans $HTTP_POST_VARS[] soit dans $_POST[]. Ce dernier tableau $_POST[] n'existe que dans les versions de php >= 4.1.0 Tu as quelle version de Php ? Dan <{POST_SNAPBACK}> la 5.0.5 de chez nexlink je crois Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 Utilises-tu bien la même casse (majuscule/minuscule) pour "nom" partout dans ton programme ? Parce que $_POST['nom'] est différent de $_POST['Nom'] Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 j'ai remis avec '%".$_POST['nom']."%'"); apres mon like et j'ai la liste de tout mes artistes qui ressort !! c couillon ca doit etre un detail idiot Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 Essaies simplement de faire une ligne dans search.php, tout au début: die("name = -".$_POST['name']."- "); Si cela t'affiche simplement "name = --" c'est que ta variable $_POST[] ne passe pas. Tu peux aussi essayer de débugger le tableau $_POST[] en remplaçant cette ligne par: print_r($_POST);exit; Donne-nous les deux résultats complets. Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 Essaies simplement de faire une ligne dans search.php, tout au début: die("name = -".$_POST['name']."- "); Si cela t'affiche simplement "name = --" c'est que ta variable $_POST[] ne passe pas. Tu peux aussi essayer de débugger le tableau $_POST[] en remplaçant cette ligne par: print_r($_POST);exit; Donne-nous les deux résultats complets. <{POST_SNAPBACK}> ca me donne bien name = -- pour le deuxieme test voila ce que j'obtiens Array ( [david] => benabar ) benabar etant le nom entre dans ma recherche Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 7 Décembre 2005 Partager Posté 7 Décembre 2005 2 choses: la première, essaie de "quoter" correctement sinon ca met le souk dans ton post et le rend quasi illisible la deuxième... tu n'as pas de $_POST['nom'] de défini ... mais tu as un $_POST['david'] égal à "benabar" Donc cette zone s'appelle "david" et pas "nom" ... Et dans mon post précédent c'était $_POST['nom'] et pas $_POST['name'] qu'il fallait lire Lien vers le commentaire Partager sur d’autres sites More sharing options...
volubilis Posté 7 Décembre 2005 Auteur Partager Posté 7 Décembre 2005 (modifié) Donc cette zone s'appelle "david" et pas "nom" ... <{POST_SNAPBACK}> je la modifie ou cette zone pour qu'elle soit nom et pas david, je vois pas pourquoi il a pris mon prenom !!!! Modifié 7 Décembre 2005 par volubilis Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant