Insérer les données d'un tableau dans une base de données mysql
Fermé
ach32
Messages postés
47
Date d'inscription
mercredi 20 avril 2016
Statut
Membre
Dernière intervention
19 septembre 2017
-
9 sept. 2016 à 14:52
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 14 sept. 2016 à 00:28
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 14 sept. 2016 à 00:28
A voir également:
- Insérer les données d'un tableau dans une base de données mysql
- Tableau croisé dynamique - Guide
- Insérer une vidéo dans powerpoint - Guide
- Effacer les données de navigation - Guide
- Reinstaller windows sans perte de données - Guide
- Tableau ascii - Guide
4 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
9 sept. 2016 à 15:38
9 sept. 2016 à 15:38
Bonjour,
Tu dois mettre des [] dans les attributs "name" de tes inputs
par exemple :
Ensuite, lorsque tu fais le submit de ton formulaire tu devrais parcourir le résultat dans une boucle.
Pour comprendre comment les données se présentent, fais un print de la variable POST.
Mon problème c'est que quand je valide le bouton enregistrer, je n'ai que une seule ligne qui s'enregistre dans la base de données.
Tu dois mettre des [] dans les attributs "name" de tes inputs
par exemple :
<td><input type=\"text\" name=\"noms[]\" value = ".$result->noms." /></td>
Ensuite, lorsque tu fais le submit de ton formulaire tu devrais parcourir le résultat dans une boucle.
Pour comprendre comment les données se présentent, fais un print de la variable POST.
print_r($_POST);
ach32
Messages postés
47
Date d'inscription
mercredi 20 avril 2016
Statut
Membre
Dernière intervention
19 septembre 2017
13 sept. 2016 à 14:42
13 sept. 2016 à 14:42
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
13 sept. 2016 à 14:48
13 sept. 2016 à 14:48
Salut,
le code que tu donnes dans ce message : https://forums.commentcamarche.net/forum/affich-33893945-inserer-les-donnees-d-un-tableau-dans-une-base-de-donnees-mysql#12
correspond à l'enregistrement d'un simple formulaire, pas d'un formulaire en tableau comme celui que tu as, tu dois faire une boucle qui va parcourir ton tableau et faire l'enregistrement que tu fais pour chaque ligne du tableau.
Je pense que tu n'es pas très loin de la solution, il faut juste que tu intègres cette nuance dans ton code.
le code que tu donnes dans ce message : https://forums.commentcamarche.net/forum/affich-33893945-inserer-les-donnees-d-un-tableau-dans-une-base-de-donnees-mysql#12
correspond à l'enregistrement d'un simple formulaire, pas d'un formulaire en tableau comme celui que tu as, tu dois faire une boucle qui va parcourir ton tableau et faire l'enregistrement que tu fais pour chaque ligne du tableau.
Je pense que tu n'es pas très loin de la solution, il faut juste que tu intègres cette nuance dans ton code.
ach32
Messages postés
47
Date d'inscription
mercredi 20 avril 2016
Statut
Membre
Dernière intervention
19 septembre 2017
13 sept. 2016 à 15:41
13 sept. 2016 à 15:41
Tu as vu l'image que j'ai posté plus haut? elle montre le tableau dans qui contient les données provenant de la BD et que je veux juste modifier. Maintenant je ne sais pas comment faire cette fameuse boucle qui me permettrai d'enregistrer ces modification comme un nouvel enregistrement dans la BD et non comme un modification des données exitantes
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
13 sept. 2016 à 16:14
13 sept. 2016 à 16:14
Pour comprendre ce que tu dois faire et comment réaliser ta boucle je t'invite à tester l'exemple suivant :
(à coller dans un nouveau fichier php et ensuite tu l'affiches pour en voir le résultat )
(à coller dans un nouveau fichier php et ensuite tu l'affiches pour en voir le résultat )
<?php //affichage des erreurs PHP error_reporting(E_ALL); //récupération des données du formulaire $data = !empty($_POST['data']) ? $_POST['data'] : NULL; if($data){ // on boucle sur les données du formulaire : foreach($data as $K=>$V){ echo "<br><pre><b>$K : </b>"; print_r($V); echo "</pre>"; } } ?> <html> <head> <title> test </title> </head> <body> <form name="test" method="post" action=""> <?php //création d'un formulaire fictif for($i=0;$i<10;$i++){ ?> <pre> <input type="text" name="data[<?php echo $i;?>]['nom']" value="<?php echo "test_$i";?>"> <input type="text" name="data[<?php echo $i;?>]['prenom']" value="<?php echo "prenom_$i";?>"> </pre> <?php } ?> <input type="submit" name="valider" value="go"> </form> </body> </html>
ach32
Messages postés
47
Date d'inscription
mercredi 20 avril 2016
Statut
Membre
Dernière intervention
19 septembre 2017
13 sept. 2016 à 20:20
13 sept. 2016 à 20:20
Merci Jordane45 pour ton code, j'ai assayer d'adapter ce code avec le mien mais le problème avec cette méthode c'est que moi je voudrais d'abord stocker provisoirement les données dans des variables pour ensuite appliquer la fonction "str_pad" à chaque donnée avant d'insérer dans la BD...
si tu as une idée de comment je peux proceder, j'attend impatiament puisque j'essaye actuelement de le faire sans succès.
si tu as une idée de comment je peux proceder, j'attend impatiament puisque j'essaye actuelement de le faire sans succès.
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
13 sept. 2016 à 21:04
13 sept. 2016 à 21:04
Regarde donc sur internet comment manipuler les array....
ach32
Messages postés
47
Date d'inscription
mercredi 20 avril 2016
Statut
Membre
Dernière intervention
19 septembre 2017
13 sept. 2016 à 22:36
13 sept. 2016 à 22:36
Merci jordane pour ce code. Je suis tombé sur une autre méthode ici:
https://forums.commentcamarche.net/forum/affich-19433057-insere-un-tableau-html-base-de-donnee-mysql
qui m'a permise de faire une boucle comme ceci:
for ($i = 1; $i <= N; $i++) {
$sql=mysql_query("INSERT INTO facture ('idt','nom_du_champ') VALUES ('$id','$variable')");
}
j'ai assayer en fixant la valeur de N à 4 et ca enregistre les 4 lignes dans la base de données. Mais comment faire pour que le N corresponde à mon nombre de lignes du tableau ?
j'y suis presque... Un dernier coup de pousse de votre part..
https://forums.commentcamarche.net/forum/affich-19433057-insere-un-tableau-html-base-de-donnee-mysql
qui m'a permise de faire une boucle comme ceci:
for ($i = 1; $i <= N; $i++) {
$sql=mysql_query("INSERT INTO facture ('idt','nom_du_champ') VALUES ('$id','$variable')");
}
j'ai assayer en fixant la valeur de N à 4 et ca enregistre les 4 lignes dans la base de données. Mais comment faire pour que le N corresponde à mon nombre de lignes du tableau ?
j'y suis presque... Un dernier coup de pousse de votre part..
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
ach32
Messages postés
47
Date d'inscription
mercredi 20 avril 2016
Statut
Membre
Dernière intervention
19 septembre 2017
13 sept. 2016 à 23:40
13 sept. 2016 à 23:40
Tu n'as pas lu l'intégralité des réponses données dans la discussion que tu pointes...
si tu regardes bien.. en dessous.. la méthode qu'il te donne est identique à la mienne !
si tu regardes bien.. en dessous.. la méthode qu'il te donne est identique à la mienne !
ach32
Messages postés
47
Date d'inscription
mercredi 20 avril 2016
Statut
Membre
Dernière intervention
19 septembre 2017
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
14 sept. 2016 à 00:19
14 sept. 2016 à 00:19
Biensur que j'ai lu l'intégralité dans la discution Jordanne. c'est la meme méthode à la différence que j'ai eu du mal à adapter les name="data[<?php echo $i;?>]['prenom']" à mon code. Maintenant je cherche toujours comment faire pour que le N corresponde à mon nombre de lignes du tableau ?
9 sept. 2016 à 16:14
9 sept. 2016 à 16:25
9 sept. 2016 à 16:54
Comme je te l'ai indiqué... as tu fais un print de $_POST ??
Ca te montre comment est structuré l'Array et donc... à toi d'adapter ton code pour que ça puisse utiliser ces données.......
9 sept. 2016 à 17:36
9 sept. 2016 à 17:38