Problème avec la boucle
kahlouche71
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
voila j'ai un tableau de 13 lignes et 18 colonnes à remplir par l'utilisateur donc j' ai met dans chaque cellule un champs de texte mais mon problème c'est comment récupéré ces valeurs pour les mettre dans ma base de donnée avec une boucle????
le code:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=mydatabase', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
/*On récupère les valeurs et les mettre dans un tableau $val[] (juste deux valeurspar exemple)*/
$val[] = $_POST["nom_de_champs_de_saisi_1"];
$val[] = $_POST["nom_de_champs_de_saisi_2"];
$champs_de_mes_tables_dans_la_base_de_donnee[] = "stock_initial";
$champs_de_mes_tables_dans_la_base_de_donnee[]= "ent_importation";
$i = 0;
while($i<2)
{
if($i=0)
{
$req = $bdd->prepare('INSERT INTO ma_table ('.$champs_de_mes_tables_dans_la_base_de_donnee[][$i].') VALUES(:stock_initial)');
$req->execute(array('stock_initial' => $val[$i]));
}else{
$req = $bdd->prepare('UPDATE ma_table SET '.$champs_de_mes_tables_dans_la_base_de_donnee[$i].' = :ent_importation WHERE = '.$champs_de_mes_tables_dans_la_base_de_donnee[0].' = :stock_initial');
$req->execute(array('ent_importation' => $val[$i],'stock_initial' => $val[0]));
}
$i++;
}
echo 'bon!!!!!';
voila j'ai un tableau de 13 lignes et 18 colonnes à remplir par l'utilisateur donc j' ai met dans chaque cellule un champs de texte mais mon problème c'est comment récupéré ces valeurs pour les mettre dans ma base de donnée avec une boucle????
le code:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=mydatabase', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
/*On récupère les valeurs et les mettre dans un tableau $val[] (juste deux valeurspar exemple)*/
$val[] = $_POST["nom_de_champs_de_saisi_1"];
$val[] = $_POST["nom_de_champs_de_saisi_2"];
$champs_de_mes_tables_dans_la_base_de_donnee[] = "stock_initial";
$champs_de_mes_tables_dans_la_base_de_donnee[]= "ent_importation";
$i = 0;
while($i<2)
{
if($i=0)
{
$req = $bdd->prepare('INSERT INTO ma_table ('.$champs_de_mes_tables_dans_la_base_de_donnee[][$i].') VALUES(:stock_initial)');
$req->execute(array('stock_initial' => $val[$i]));
}else{
$req = $bdd->prepare('UPDATE ma_table SET '.$champs_de_mes_tables_dans_la_base_de_donnee[$i].' = :ent_importation WHERE = '.$champs_de_mes_tables_dans_la_base_de_donnee[0].' = :stock_initial');
$req->execute(array('ent_importation' => $val[$i],'stock_initial' => $val[0]));
}
$i++;
}
echo 'bon!!!!!';
A voir également:
- Problème avec la boucle
- Boucle excel sans macro - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
3 réponses
oy ! il te faut passer les saisies utilisateurs en utilisant un get ou un post ou une variable de session. De cette manière tes données se transporteront d'une page à l'autre et tu pourras ensuite les traiter.
Ton tableau peu être le contenu du 'POST', l'utilisateur le rempli, clic sur un bouton, et au clic tu appel une page avec les informations rentrées par l'utilisateur.
regarde donc dans un premier temps du coté de "forme poste php"
naga
Ton tableau peu être le contenu du 'POST', l'utilisateur le rempli, clic sur un bouton, et au clic tu appel une page avec les informations rentrées par l'utilisateur.
regarde donc dans un premier temps du coté de "forme poste php"
naga
On voit une connexion à une bdd, une récupération de valeur par $_POST, et une tentative d'insertion (qui à l'air un peu bancale) mais quelle erreur as tu?
$_POST["nom_de_champs_de_saisi_1"] renvoie bien qqch?
Où est le tableau rempli par l'utilisateur? Il renvoie bien vers ce script?
$_POST["nom_de_champs_de_saisi_1"] renvoie bien qqch?
Où est le tableau rempli par l'utilisateur? Il renvoie bien vers ce script?
bonjour, d'abord merci pour les réponses nagashima et kyser soze.
j' ai essayé ce code précédemment et l'insertion dans la base de donnée marche.
le code de ma page "envoi2.php" :
<?php
//connexion vers ma base de donnée
try
{
$bdd = new PDO('mysql:host=localhost;dbname=mydatabase', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
//On récupère les valeurs et les mettre dans une table $val[]
$val[] = $_POST["nom_de_champs_de_saisi_1"];
/* nom_de_champs_de_saisi_1 se trouve dans une autre page php ; dans une formulaire qui a comme action="envoi2.php" */
$val[] = $_POST["nom_de_champs_de_saisi_2"];
/*mettre les noms des attributs de ma_table sous forme de string dans une table $champs_de_mes_tables_dans_la_base_de_donnee[] */
$champs_de_mes_tables_dans_la_base_de_donnee[] = "stock_initial";
$champs_de_mes_tables_dans_la_base_de_donnee[]= "ent_importation";
for($i=0;$i<2;$i++)
{
$req = $bdd->prepare('INSERT INTO ma_table('.champs_de_mes_tables_dans_la_base_de_donnee[$i].') VALUES(:stock_initial)');
$req->execute(array('stock_initial' => $val[$i]));
}
echo 'Le jeu a bien été ajouté !';
problème:
sauf qu'il fallait insérer les deux valeurs récupérées par le $_POST sous le même tuple.
j' ai essayé ce code précédemment et l'insertion dans la base de donnée marche.
le code de ma page "envoi2.php" :
<?php
//connexion vers ma base de donnée
try
{
$bdd = new PDO('mysql:host=localhost;dbname=mydatabase', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
//On récupère les valeurs et les mettre dans une table $val[]
$val[] = $_POST["nom_de_champs_de_saisi_1"];
/* nom_de_champs_de_saisi_1 se trouve dans une autre page php ; dans une formulaire qui a comme action="envoi2.php" */
$val[] = $_POST["nom_de_champs_de_saisi_2"];
/*mettre les noms des attributs de ma_table sous forme de string dans une table $champs_de_mes_tables_dans_la_base_de_donnee[] */
$champs_de_mes_tables_dans_la_base_de_donnee[] = "stock_initial";
$champs_de_mes_tables_dans_la_base_de_donnee[]= "ent_importation";
for($i=0;$i<2;$i++)
{
$req = $bdd->prepare('INSERT INTO ma_table('.champs_de_mes_tables_dans_la_base_de_donnee[$i].') VALUES(:stock_initial)');
$req->execute(array('stock_initial' => $val[$i]));
}
echo 'Le jeu a bien été ajouté !';
problème:
sauf qu'il fallait insérer les deux valeurs récupérées par le $_POST sous le même tuple.
juste pour faire un point pour bien comprendre :
l'utilisateur saisies 2 données (on va se limiter à 1 valeur pour le champs1 et 1 pour le champs2). Tu souhaiterai ajouter dans "ma_table" : stock_initial=valeur(champs1) et ent_importation=valeur(champs2) c'est bien ca ?
Si je ne me trompe pas, il faudrait que tu nous fournisse le formulaire aussi (pour voir ta manière de transmettre les données)
l'utilisateur saisies 2 données (on va se limiter à 1 valeur pour le champs1 et 1 pour le champs2). Tu souhaiterai ajouter dans "ma_table" : stock_initial=valeur(champs1) et ent_importation=valeur(champs2) c'est bien ca ?
Si je ne me trompe pas, il faudrait que tu nous fournisse le formulaire aussi (pour voir ta manière de transmettre les données)