j'arrive pas a afficher des variables crees dans une boucle ! (PHP) - Programmation
Marsh Posté le 25-05-2001 à 11:45:12
T'es sûr qu'y a pas une couille là : 'dn_jour_e$i' ?
ou là "$dn_jour_e$i / ";
j'ai l'impression que tu mélanges un peu les variables.
Marsh Posté le 25-05-2001 à 11:48:20
essaie comme ca (c'est un test) :
for ($i = 1; $i <= $nb_enf; $i++)
{
$var="dn_jour_e" .$i;
if( isset( $$var ) ) echo "$$var / ";
$var="dn_mois_e" .$i;
if( isset( $$var ) ) echo "$$var / ";
$var="dn_annee_e" .$i;
if( isset( $$var ) ) echo "$$var <br>";
}
PS : La fonction echo n'est recommandée que pour du debogage, utilise pltuôt la fonction print
Marsh Posté le 25-05-2001 à 12:33:57
merci de passer par mon topic
duch : j'utilise des simples cotes au lieu des doubles car je passe par un echo, mais bon, je suppose que tu devais parler d'autres chose car ca ma parait logique
lord II : ton script m'affiche une erreur partielle sur la ligne de ta premiere accolade (je suppose donc que c'est a la ligne suivante que se situe le prob mais je vois pas trop en fait
Marsh Posté le 25-05-2001 à 12:39:47
bon, je vais essayer de vous donner + de details :
voici les erreurs qu'il m'affiche lorsque je fais de simples echo sans le test avec isset avant :
(nb_enf=3 dans cet exemple et les dates de naissance sont 1/1/1 2/2/2 et 3/3/3)
Warning: Undefined variable: dn_jour_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 21
1 /
Warning: Undefined variable: dn_mois_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 22
1 /
Warning: Undefined variable: dn_annee_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 23
1
Warning: Undefined variable: dn_jour_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 21
2 /
Warning: Undefined variable: dn_mois_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 22
2 /
Warning: Undefined variable: dn_annee_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 23
2
Warning: Undefined variable: dn_jour_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 21
3 /
Warning: Undefined variable: dn_mois_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 22
3 /
Warning: Undefined variable: dn_annee_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 23
3
il me dit que la variable n'est pas definie mais arrive qd meme a trouver sa valeur
[edit]--Message édité par Batman-Fr--[/edit]
Marsh Posté le 25-05-2001 à 13:27:54
Chez moi ca marche mais j'ai fait deux modifs sur les lignes de test
Je te colle le bout que j'ai fait avec les test
Code :
|
Marsh Posté le 25-05-2001 à 14:03:20
toujours pareil : erreur au niveau de la premiere accolade
Marsh Posté le 25-05-2001 à 14:22:17
Quelles version de php as tu??
Sur quel serveur est tu ??
Marsh Posté le 25-05-2001 à 15:02:42
mea culpa (enfin pas vraiment) : ton code marche parfaitement
j'etais passe par un copie-colle et le fait que je sois sous Mac n'a pas du arranger les choses.
Lorsque tu m'as dit que ca passait bien chez toi, j'ai tilte du coup, je l'ai retape a la main et ca passe plutot ... hum .... fine
merci bcp de votre aide !!
par contre, connaissez vous la raison pour laquelle mon code ne passait pas ? parce qu'il me semble qu'en debuggant sur le script qui envoie les infos, ma boucle passait ...
m'enfin, ca marche, mais j'aimerais qd meme comprendre, histoire de progresser (on me dit tjrs que je pose des questions de debutant )
Marsh Posté le 25-05-2001 à 15:29:08
Je pense que tu aurais du mettre tes variables sous cette forme
isset($("dn_jour_e" .$i) )
Marsh Posté le 25-05-2001 à 11:40:26
voila, je cree des variables dans une boucle de cette facon :
for ($i = 1; $i <= $nb_enf; $i++)
{
echo"enfant $i : ";
echo"<input type='text' name='dn_jour_e$i' size='3' maxlength='2'> / ";
echo"<input type='text' name='dn_mois_e$i' size='3' maxlength='2'> / ";
echo"<input type='text' name='dn_annee_e$i' size='6' maxlength='4'> <br>";
}
ce formulaire envoie les infos a un autre et je voudrais les afficher pour confirmation. J'ai donc tape ce code mais il ne fonctionne pas :
for ($i = 1; $i <= $nb_enf; $i++)
{
if( isset( $dn_jour_e$i ) ) echo "$dn_jour_e$i / ";
if( isset( $dn_mois_e$i ) ) echo "$dn_mois_e$i / ";
if( isset( $dn_annee_e$i ) ) echo "$dn_annee_e$i <br>";
}
avec ce code, le navigateur me sort cette erreur :
Parse error: parse error, expecting `')'' in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 22
(la ligne 22 correspond au premier "if" du code si dessus)
alors que si je tape ce code, tout marche parfaitement :
for ($i = 1; $i <= $nb_enf; $i++)
{
if( isset( $dn_jour_e1 ) ) echo "$dn_jour_e1 / ";
if( isset( $dn_mois_e1) ) echo "$dn_mois_e1 / ";
if( isset( $dn_annee_e1) ) echo "$dn_annee_e1 <br>";
}
donc, c'est le meme code sauf que j'ai remplace le $i par 1
PS : j'utilise la condition isset car si je passe directement par un echo, le navigateur m'affiche des warnings avant de m'afficher la date
voila, j'espere avoir reussi a explique mon prob, j'suis vraiment perdu sur ce coup
merci d'avance
++
---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391