Se connecter avec
S'enregistrer | Connectez-vous

Récupérer les données d'un formulaire avec une boucle

Dernière réponse : dans Programmation

Boujours à tous,
Je pense que mon titre résume bien mon problème. En effet, j'ai fait un formulaire avec une boucle for et je n'arrive pas à récupérer les données. Le nombre de donné et définit par l'utilisateur c'est pour cette raison que j'utilise une boucle for. Voici mon code:

(formulaire.php):

<?php
if ($nbrpers){
$limite = $nbrpers;
}
else{
$limite = 1;
}
echo '<form method="POST" action="formindex.php?limite='.$limite.'">';
for ($i=1; $i < $limite+1; $i++){
?>
<tr><td align="center" height="30"><input type="text" name="<?php echo 'nom['.$i.']'; ?>" maxlength="20" style="width: 100px"></td>


<?php }

echo '<tr width="20">
</tr>
<tr>
<td colspan="11" align="center">
<input type="submit" name="submit" value="Envoyer">
</td>
</tr>

Voici le code pour récupérer les données:

(formindex.php):

<?php @session_start ();

$limite = $_GET['limite'];


// On commence par récupérer les champs
$db = mysql_connect('localhost', '*****', '******') or die('Erreur de connexion '.mysql_error());

// sélection de la base
mysql_select_db('******',$db) or die('Erreur de selection '.mysql_error());


for ($i=1; $i < $limite+1 ; $i++){

$nom=$nom[$i];

$sql = "INSERT INTO lien2(id,nom)
VALUES('','$nom')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo 'Données bien enregistrées!';
}
// on affiche le résultat pour le visiteur

include('formulaire.php');

?>
</table>
</form>';
?>


Merci d'avance pour vos réponses!
Lassé par la pub ? Créez un compte
Expert Programmation

Une petite remarque d'abord :
for ($i=1; $i != $limite+1; $i++)
Prend l'habitude de mettre < ou <= et pas !=, imagine que la variable $limite soit égale à -1 pour une raison ou pour une autre, ça te fait une boucle infinie...

Deuxième remarque :
action="formindex.php?limite='.$nbrpers.'"
Tu viens de définir la variable limite qui est égale à nbrpers s'il est défini, sinon à 1, donc utilise la à la place ;) 

Sinon, quelle est ton erreur exactement ? Tu as un quelconque message ?

Merci tout d'abord pour tes remarques pertinentes!

En fait mon problème c'est qu'il ne récupére que la première donnée (nom[1]) et pas celles qui suivent (nom[2], nom[3], ...) en faite, une nouvelle entré est rentré dans la BDD mais il n'y a pas de valeur sauf, comme je les dit plus haut, pour la première entrée. Je sais pas si très compréhensible mais merci d'avance!!
Lassé par la pub ? Créez un compte
Tom's guide dans le monde