Jump to content
Sign in to follow this  
volubilis

Pb resultat de recherche à partir d'un formulaire

Rate this topic

Recommended Posts

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>)';

}
?>
<?php
mysql_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 !!!

Share this post


Link to post
Share on other sites

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']."%'";

Share this post


Link to post
Share on other sites

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

Edited by Portekoi

Share this post


Link to post
Share on other sites
Edit : Encore doublé :D

:lol:

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'

Share this post


Link to post
Share on other sites

Tu as une version de php inférieure à la 4.1.0 ? :blush:

Essaies en remplaçant $_POST['nom'] par $HTTP_POST_VARS['nom'] et dis-nous ce que cela donne ;)

Dan

Share this post


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

Share this post


Link to post
Share on other sites

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).....

Share this post


Link to post
Share on other sites

C'est logique si $_POST['nom'] n'est pas défini. le like '%%' donne tous les noms.

Share this post


Link to post
Share on other sites

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'] :)

Share this post


Link to post
Share on other sites

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']."%'");

Share this post


Link to post
Share on other sites

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).....

Share this post


Link to post
Share on other sites

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... :)

Share this post


Link to post
Share on other sites

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

Share this post


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

Share this post


Link to post
Share on other sites

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'] :)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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. ;)

Share this post


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

Share this post


Link to post
Share on other sites

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 :)

Share this post


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

Edited by volubilis

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