Recupérer variables post dans boucle php

lukkul Messages postés 11 Date d'inscription   Statut Membre -  
 Alain42 -
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. duky02 Messages postés 47 Statut Membre 2
     
    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
  2. lukkul Messages postés 11 Date d'inscription   Statut Membre
     
    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
  3. lukkul Messages postés 11 Date d'inscription   Statut Membre
     
    ah oui d'accord g oublier le $i++ mais c que g isolé cette partie du code :)
    0
  4. Alain42
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lukkul Messages postés 11 Date d'inscription   Statut Membre
     
    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
  7. lukkul Messages postés 11 Date d'inscription   Statut Membre
     
    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
  8. Alain42
     
    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