Recupérer variables post dans boucle php

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
Configuration: Mac OS X
Firefox 2.0.0.11

7 réponses

  1. 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++;
    }
    ++
    1. 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
      1. ah oui d'accord g oublier le $i++ mais c que g isolé cette partie du code :)
        1. 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
          1. 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;
            }

            ?>
            1. 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;
              }

              ?>
              1. 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')