Problème de variable

Résolu
LailaMsaadi Messages postés 19 Date d'inscription jeudi 19 août 2010 Statut Membre Dernière intervention 24 décembre 2010 - 25 août 2010 à 18:03
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 26 août 2010 à 13:55
bonjour , j'ai un problème de syntaxe mais je ne trouve la réponse nulle part
Voici mon code :
echo htmlentities($donnees['"$radio"']);
et ca m'affiche cette erreur :

Notice: Undefined index: "$radio" in C:\wamp\www\stage\recherche2.php on line 82

j'aii essayé même la syntaxe :
echo htmlentities($donnees[$radio]);

toujours la même erreur :
Notice: Undefined index: Texte in C:\wamp\www\stage\recherche2.php on line 82
mais cette fois il remplace la variable $radio par sa valeur Texte, ce qu'il devrait faire mais ca donne toujours une erreur!

aidez moi svp

9 réponses

cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
25 août 2010 à 22:55
Bonsoir,

Dans ta requête SQL : 'SELECT "$radio" FROM recommandations WHERE Priorite = "'.$choixpriorite.'"' dans ce cas, PHP n'interprétera pas $radio car il est dans une chaine de caractére entouré de quote simple, tente de le remplace par:

'SELECT "' . $radio . '" FROM recommandations WHERE Priorite = "' .$choixpriorite . '"'

(sans remplacer fait un var_dump($donnee); pour te montrer ce qui est dans ta variable $donnee)

bonne soirée
3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
25 août 2010 à 18:24
Salut,

Ca :
"echo htmlentities($donnees[$radio]); "
ça ne peut pas donner ça :
"Notice: Undefined index: Texte in C:\wamp\www\stage\recherche2.php on line 82 "
ou alors l'erreur concerne un autre problème.

Undefined index == index du tableau $données non défini vérifie donc que la valeur de $radio soit un index de $donnees

Cordialement,

Kohntark -
0
LailaMsaadi Messages postés 19 Date d'inscription jeudi 19 août 2010 Statut Membre Dernière intervention 24 décembre 2010
25 août 2010 à 20:22
re bonjour,
j'ai vérifié cette ligne elle est effectivement celle de ce code et j'ai vérifié avec un echo aussi la valeur de $radio : c'est bien Texte.

en effet avec un

echo htmlentities($donnees['Texte']);

cela affiche parfaitement les données de la base.
merci encore!
0
LailaMsaadi Messages postés 19 Date d'inscription jeudi 19 août 2010 Statut Membre Dernière intervention 24 décembre 2010
25 août 2010 à 20:46
je crois que je n'ai pas été très claire

voici l'affectation :

$radio = $_POST['radio'];

et voici la requête :

$reponse $bdd->query('SELECT "$radio" FROM recommandations WHERE Priorite "'.$choixpriorite.'"') or exit(print_r($bdd->errorInfo()));

while ($donnees = $reponse->fetch())
echo htmlentities($donnees[$radio]);

si par ailleurs je fais un echo

echo "$radio" à la place de echo htmlentities($donnees[$radio]);

cela donne : Texte Texte ( car j'ai deux entrées dans ma table)

sinn ca me donne deux fois l'erreur :

Notice: Undefined index: Texte in C:\wamp\www\stage\recherche2.php on line 82
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
25 août 2010 à 23:01
un ajout, penses à protéger les variables qui viennent d'une source externe comme dans ton exemple $radio

$radio = filter_input(INPUT_GET, 'radio', FILTER_SANITIZE_STRING);

c'est tout pour ce soir ^^
0
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
25 août 2010 à 23:02
INPUT_POST et non INPUT_GET dans ton cas

oula il se fait tard ...
0
LailaMsaadi Messages postés 19 Date d'inscription jeudi 19 août 2010 Statut Membre Dernière intervention 24 décembre 2010
26 août 2010 à 02:38
sans remplacer ... voila ce que ça donne 2 fois (à cause de la boucle):

array(2) { ["$radio"]=> string(6) "$radio" [0]=> string(6) "$radio" }

et en remplaçant , encore 2 fois:

array(2) { ["Texte"]=> string(5) "Texte" [0]=> string(5) "Texte" }

ce que j'ai compris c'est que tu as raison , maintenant ma requête sql interprète ce que je veux cad Texte.

mais je ne sais toujours pas la syntaxe que je dois utiliser pour le :

echo htmlentities($donnees[$radio]);

ouuui il se fait très tard,
Bonne nuit
0
LailaMsaadi Messages postés 19 Date d'inscription jeudi 19 août 2010 Statut Membre Dernière intervention 24 décembre 2010
26 août 2010 à 13:28
bonjour

j'ai finalement trouvé la bonne syntaxe :

Pour ma requête:

'SELECT "' . $radio . '" FROM recommandations WHERE Priorite = "' .$choixpriorite . '"'

et pour le echo

echo htmlentities($donnees[$radio]);

merci tout le monde :)
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
26 août 2010 à 13:55
oula il se fait tard ...

... t'inquiète; pour moi, vu comment j'ai répondu à côté de la plaque, il était déjà très tard à 18:24


Kohntark -
0
Rejoignez-nous