Problème avec la boucle

Fermé
kahlouche71 Messages postés 3 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 22 avril 2013 - 5 avril 2013 à 00:30
 Utilisateur anonyme - 5 avril 2013 à 13:28
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!!!!!';

3 réponses

Utilisateur anonyme
5 avril 2013 à 09:48
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
0
Utilisateur anonyme
5 avril 2013 à 10:31
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?
0
kahlouche71 Messages postés 3 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 22 avril 2013
5 avril 2013 à 11:46
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.
0
Utilisateur anonyme
5 avril 2013 à 13:28
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)
0

Discussions similaires