|
|
|
|
Bonjour à tous,
Alors voilà mon problème. J'aimerais dans un script php récupérer des variables transmises par formulaire par la méthode POST. Mon problème provient du fait que le formulaire ne possède pas un nombre de champ définis. Il se trouve dans une boucle et donc pour chaque enregistrement de ma base de données un certain nombre de champs est généré.
Les noms des différents champs sont les même (img1, cat_id1, etc...), à part le dernier numéro qui s'incrémente au fur et à mesure de la page.
Alors mon problème, est-il possible de récupérer chaque champ dans une boucle php par la méthode POST et rajoutant au nom de variable le numéro adéquat ? Par exemple (non fonctionnel...) :
$nb = $_POST['nb']; //nombre d'enregistrements
$i = 1 ;
while ($i < $nb){
$img = $_POST['img'.$i];
$cat_id = $_POST['cat_id'.$i];
}D'avance merci à ceux qui pourront m'aider et/ou trouver des solutions alternatvies ;)
En fait c'est égal que les variables soient automatiquement écrasée ou non. Elles sont tout de suite traitée, puis après sont inutiles donc pas d'importance.
|
Oui, comme l'index d'un tableau est une chaine :
|
Bon, alors voilà mon code :
$nb = $_POST['nb'];
$i = 1;
while ($i < $nb){
$img = $_POST['img'.$i];
$cat_id = $_POST['cat_id'.$i];
$comm = $_POST['comm'.$i];
$i++;
$requete = "UPDATE images SET cat_id='$cat_id', img='$img', comm='$comm', susp='false' WHERE img='$img'";
mysql_query($requete);
echo 'Cat_id : '.$cat_id."<br>\n";
echo 'Img : '.$img."<br>\n";
echo 'Comm : '.$comm."<br>\n";
}
echo 'Les données ont bien été enregistrées.<br>'."\n";Le truc, c'est que ma table n'est pas mise à jour, et que mes echo ne donnent rien...
Pourtant mon formulaire fonctionne, car lorsque je traite image par image (sans la boucle, avec des données fixes) cela marche. Donc d'où vient mon bug ? EDIT : la seule chose qui s'affiche est mon "Les données ont bien été enregistrées". (_..:: P'tit Suisse ::.._) |
Tu vas rire (j'espère ^^) c'est juste une faute toute simple, en faite ma variable nb était envoyée par un champdisabled, donc en fait pas transmise...
|