Recupérer variables post dans boucle php

Fermé
lukkul Messages postés 11 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 13 décembre 2007 - 13 déc. 2007 à 15:16
 Alain42 - 13 déc. 2007 à 22:03
Bonjour,
g un petit souci
j'essaye de recupérer des variable $_post dans une boucle mais il ne me les reconnait pas :
est ce que quelqu'un peu m aider?

mon code:
$i = 0;
while ($i< 10) {

$a = $_POST['foto'.$i];
$b = $_POST['acabado'.$i];
$c = $_POST['tamano'.$i];
$d = $_POST['qte'.$i];
$e = $_POST['cd'.$i];
}

merci d'avance
A voir également:

7 réponses

duky02 Messages postés 46 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 23 octobre 2008 2
13 déc. 2007 à 15:19
oh la belle boucle infinie.
sinon enleve des concaténations entre les [] et fais le aprés

$i = 0;

while ($i< 10) {
$a = $_POST['foto'];
$b = $_POST['acabado'];
$c = $_POST['tamano'];
$d = $_POST['qte'];
$e = $_POST['cd'];
$i++;
}
++
0
lukkul Messages postés 11 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 13 décembre 2007
13 déc. 2007 à 15:25
le souci etant que mes variables post son deja issue d'une boucle qui les nome acabado1,acabado2,etc
et je ne sais pas combien de reponse j'aurai

merci de m'écouter
0
lukkul Messages postés 11 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 13 décembre 2007
13 déc. 2007 à 15:27
ah oui d'accord g oublier le $i++ mais c que g isolé cette partie du code :)
0
Bonjour,

dans ton formulaire a la fin de la generation des noms de champ composés acabado1,acabado2,etc , tu mets dans un champ caché type="hidden" le nombre

tu recuperes ce nombre dans le script de traitement par $nb=$_POST['nom_champ_cache'];

et tu fais ta boucle while avec ce nombre comme condition

$i = 0;

while ($i< $nb) {
${'a'.$i} = $_POST['foto'.$i];
${'b'.$i} = $_POST['acabado'.$i];
${'c'.$i} = $_POST['tamano'.$i];
${'d'.$i} = $_POST['qte'.$i];
${'e'.$i} = $_POST['cd'.$i];
$i++;
} 



n'oublie pas d'indicier aussi les variable $a.... etc car sinon elles eront écrasées à chaque boucle et a la fin elles auront la valeur de la dernière boucle

${'a'.$i} est une methode pour creer des varaibles dynamiques (variables variables), pour une autre methode vas voir le site www.siteduzero.com
0

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

Posez votre question
lukkul Messages postés 11 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 13 décembre 2007
13 déc. 2007 à 17:22
Merci Alain de ta réponse,

si je peux abuser en fait je recois mes variables d'un flash et voila mon code complet, le soucie étant que dans ma base de donnée il me rajoute bien une entrée y insere les valeur des premier variable post mais laisse celle de ma boucle vide.

le code:
<?php
session_start();
include("dbconnect.php");

//extract($_POST);
$passw = $_POST['passw'];
$login = $_POST['login'];
$email = $_POST['email'];
$howmuch = $_POST['howmuch'];
$statusclient = $_POST['statusclient'];
$evento = $_POST['evento'];

$j = 0;

while ($j< $howmuch) {
${'a'.$j} = $_POST['foto'.$j];
${'b'.$j} = $_POST['acabado'.$j];
${'c'.$j} = $_POST['tamano'.$j];
${'d'.$j} = $_POST['qte'.$j];
${'e'.$j} = $_POST['cd'.$j];
$j++;
}


//write webclient

$sql = "INSERT INTO webclient (date,heure,email,statusclient,pw,identification,cuantas,evento) VALUES (NOW(),NOW(),'$email','$statusclient','$passw','$login','$howmuch','$evento')";

$tab = mysql_query($sql)or die("Query failed");
if($sql) echo "&webclient=Ok&";
else echo "webclient=Error";
@mysql_free_result($sql);
mysql_close();




//write pedido

$i = 0;
while ($i< $howmuch) {

include("dbconnect.php");
$sqlpedido = "INSERT INTO pedidos (photo,acabado,tamano,qte,cd,webclient,evento) VALUES ('${'a'.$i}','${'b'.$i}','${'c'.$i}','${'d'.$i}','${'e'.$i}','$login','$evento')";
$tab = mysql_query($sqlpedido)or die("Query failed");
mysql_close();
@mysql_free_result($sqlpedido);

$i=$i+1;
echo $i;
}




?>
0
lukkul Messages postés 11 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 13 décembre 2007
13 déc. 2007 à 18:08
Merci Alain de ta réponse,

si je peux abuser en fait je recois mes variables d'un flash et voila mon code complet, le soucie étant que dans ma base de donnée il me rajoute bien une entrée y insere les valeur des premier variable post mais laisse celle de ma boucle vide.

le code:
<?php
session_start();
include("dbconnect.php");

//extract($_POST);
$passw = $_POST['passw'];
$login = $_POST['login'];
$email = $_POST['email'];
$howmuch = $_POST['howmuch'];
$statusclient = $_POST['statusclient'];
$evento = $_POST['evento'];

$j = 0;

while ($j< $howmuch) {
${'a'.$j} = $_POST['foto'.$j];
${'b'.$j} = $_POST['acabado'.$j];
${'c'.$j} = $_POST['tamano'.$j];
${'d'.$j} = $_POST['qte'.$j];
${'e'.$j} = $_POST['cd'.$j];
$j++;
}


//write webclient

$sql = "INSERT INTO webclient (date,heure,email,statusclient,pw,identification,cuantas,evento) VALUES (NOW(),NOW(),'$email','$statusclient','$passw','$login','$howmuch','$evento')";

$tab = mysql_query($sql)or die("Query failed");
if($sql) echo "&webclient=Ok&";
else echo "webclient=Error";
@mysql_free_result($sql);
mysql_close();




//write pedido

$i = 0;
while ($i< $howmuch) {

include("dbconnect.php");
$sqlpedido = "INSERT INTO pedidos (photo,acabado,tamano,qte,cd,webclient,evento) VALUES ('${'a'.$i}','${'b'.$i}','${'c'.$i}','${'d'.$i}','${'e'.$i}','$login','$evento')";
$tab = mysql_query($sqlpedido)or die("Query failed");
mysql_close();
@mysql_free_result($sqlpedido);

$i=$i+1;
echo $i;
}




?>
0
Salut,

dans ta derniere boucle, tu te connecte et deconnecte à ta base a chaque tour

fais plutot:

//write pedido
include("dbconnect.php");
$i = 0;
while ($i< $howmuch) {
	$sqlpedido = "INSERT INTO pedidos (photo,acabado,tamano,qte,cd,webclient,evento) VALUES ('${'a'.$i}','${'b'.$i}','${'c'.$i}','${'d'.$i}','${'e'.$i}','$login','$evento')";
	$tab = mysql_query($sqlpedido)or die("Query failed".mysql_error());
	$i=++;
	echo $i;
}
mysql_free_result($sqlpedido);
mysql_close();


?>


et dans la boucle de recup des valeurs mets un echo pour voir si tu recuperes correctement:

$j = 0;
while ($j< $howmuch) {
	${'a'.$j} = $_POST['foto'.$j];
	${'b'.$j} = $_POST['acabado'.$j];
	${'c'.$j} = $_POST['tamano'.$j];
	${'d'.$j} = $_POST['qte'.$j];
	${'e'.$j} = $_POST['cd'.$j];
	$j++;
	echo "<br>".${'a'.$j};
} 


je suppose que $howmuch= nombre d'index de tes variables recup dans le champ caché

ensuite, plus haut pourquoi as tu deux fois now() pour date et heure ?

pour date il faut date('Y-m-d') pour heure date('H:i:s')
0