Récupérer les variables d'un formulaire pour les enregister dans BDD - PHP - Programmation
Marsh Posté le 13-10-2010 à 15:47:05
Quel est ton problème si tu as déjà la requête sql ?
http://www.siteduzero.com/tutoriel [...] #ss_part_2
Marsh Posté le 13-10-2010 à 15:48:49
La requête s'exécute par un mysql_query($sql).
Marsh Posté le 13-10-2010 à 16:06:34
Bonjour et merci pour vos réponses.
Mon problème est que je ne sais comment faire pour remplir les variables 'info1' ,'$info2' ,'$info3' ,'$info4', avec les valeurs contenues dans les champs du formulaire, sachant que :
Les champs de mon formulaires sont identifiés par un identifient unique (qui est l'identifiant 'RefEleve') et qu'il faut actualiser les valeurs des varaibles 'info1' ,'$info2' ,'$info3' ,'$info4', pour chause élève du formulaire.
J'espère avoir été clair. En tout cas merci pour vos suggestions.
Marsh Posté le 13-10-2010 à 20:17:10
J'en déduis donc que le foreach() a été récupéré autre part.... Car il contient des assignations de variables.
Il faut déjà mettree un $ avant info1 dans ta requête. Il faut qu'on sache aussi à quoi correspondent les champs de ta table.
Marsh Posté le 14-10-2010 à 04:28:14
Je vais essayer d'être plus claire :
Coté formulaire, pour chacun des élèves dont je veux enregistrer la présence, j'ai 5 champs :
IdDuCours_idEleve[],
RefEleve_idEleve[],
present_idEleve[],
absent_idEleve[],
retard_idEleve[],
remarque_retard_idEleve[]
Quand je clique sur le bouton OK du formulaire, je POST un flux d'informations qui concerne tous les élèves de la classe.
Avec le code :
foreach ($_POST as $key => $value) {
$tab_info = $value;
$info1 = $tab_info[0];
$i = 0;
while ($i < count($tab_info[0])) {
echo $key.' = '.$info1.'<br/>';
$i++;
}
}
je décripte le flux d'informations envoyé sous la forme (pour les élèves _260 et _261 dans le cas ci-dessous):
RefEleve_260 = 260
idDuCours_260 = 173
PresentAbsent_260 = retard
remarques_260 - 260 = arrivé à 14:30
RefEleve_261 = 261
idDuCours_261 = 173
PresentAbsent_261 = present
remarques_261 =
Pour enregistrer les infos saisie dans le formulaire pour chacun des élèves (_260 et _261), j'ai pensé faire correspondre les infos contenues dans les champs du formulaire avec les variables $info1 (à 4), c'est à dire par exemple pour l'élève 260, j'enregistre :
pour le champ RefEleve_260, la valeur 260 dans la variable $info1
pour le champ idDuCours_260, la valeur 173 dans la variable $info2
pour le champ PresentAbsent_260, la valeur retard dans la variable $info3
pour le champ remarques_260, la valeur 260 - arrivé à 14:30 dans la variable $info4
Et ainsi de suite jusqu'au dernier élève du formulaire avec la requête
$sql = "INSERT INTO administration_presence_cours(id,RefEleve,idDuCours,present_abs_retard,remarques_retards) VALUES('' ,'$info1' ,'$info2' ,'$info3' ,'$info4')";
mysql_query($sql) ;
Désolé d'être aussi laborieux et merci encore pour votre patience.
Ps : S'il y a une méthode plus simple, je suis preneur !!!
Ps 2 : pour le moment le foreach() est sur la même form que le formulaire.
Marsh Posté le 14-10-2010 à 07:29:56
Oups... j'ai oublié de préciser ce que je ne sais pas faire :
Après avoir reçu le post et l'avoir "décortiqué" avec le code :
foreach ($_POST as $key => $value) {
$tab_info = $value;
$info1 = $tab_info[0];
$i = 0;
while ($i < count($tab_info[0])) {
echo $key.' = '.$info1.'<br/>';
$i++;
}
}
sous la forme :
RefEleve_260 = 260
idDuCours_260 = 173
PresentAbsent_260 = retard
remarques_260 - 260 = arrivé à 14:30
comment passer à l'étape :
$sql = "INSERT INTO administration_presence_cours(id,RefEleve,idDuCours,present_abs_retard,remarques_retards) VALUES('autoincrement' ,'260 ' ,'173' ,'retard' ,'260 = arrivé à 14:30')";
mysql_query($sql) ;
et ainsi de suite jusqu'au dernier élève du formulaire.
Marsh Posté le 13-10-2010 à 15:14:55
Bonjour à toutes et à tous,
A l'aide d'un formulaire html, je veux enregistrer la liste des élèves présent, absent ou en retard d'une classe.
Pour cela, à partir la liste des élèves déjà rentrée dans la bdd, je crée dynamiquement le formulaire suivant :
<center><b>PRESENCE / ABSENCE DES ELEVES AAA_TEST</b></center><br><br>
<form method='POST'><table width= border=0 align=center><tr>
<td width=100 bgcolor='#CCCCCC' div align=center>
<input type='text' name='idDuCours_260[]' value=168 />
<td width=100 bgcolor='#CCCCCC' div align=left><input type='text' name='RefEleve_260[]' value=260></td>
<td width=100 bgcolor='#CCCCCC' div align=center><input type='radio' name='PresentAbsent_260[]' value='present' checked='checked'/></td>
<td width=100 bgcolor='#CCCCCC' div align=center><input type='radio' name='PresentAbsent_260[]' value='absent' /></td>
<td width=100 bgcolor='#CCCCCC' div align=center><input type='radio' name='PresentAbsent_260[]' value='retard' /></td>
<td width=100 bgcolor='#CCCCCC' div align=center> <input type='text' name='remarques_260[]' /></td>
</td>
</tr>
<td width=100 bgcolor='#CCCCCC' div align=center>
<input type='text' name='idDuCours_261[]' value=168 />
<td width=100 bgcolor='#CCCCCC' div align=left><input type='text' name='RefEleve_261[]' value=261></td>
<td width=100 bgcolor='#CCCCCC' div align=center><input type='radio' name='PresentAbsent_261[]' value='present' checked='checked'/></td>
<td width=100 bgcolor='#CCCCCC' div align=center><input type='radio' name='PresentAbsent_261[]' value='absent' /></td>
<td width=100 bgcolor='#CCCCCC' div align=center><input type='radio' name='PresentAbsent_261[]' value='retard' /></td>
<td width=100 bgcolor='#CCCCCC' div align=center> <input type='text' name='remarques_261[]' /></td>
</td>
</tr></table><br><div align='center'><input type='submit' value='OK' ></div><br></form>
Grâce au code ci-dessous, je récupère les infos relativesd à chaque élèves.
foreach ($_POST as $key => $value) {
$tab_info = $value;
$info1 = $tab_info[0];
//$message = "$key = $info1<br>";
//echo $message;
$i = 0;
while ($i < count($tab_info[0])) {
echo $key.' - '.$info1.'<br/>';
$i++;
}
}
Comment faire pour enregistrer ces infos dans ma bdd avec une requête de type :
// $sql = "INSERT INTO administration_presence_cours(id,idDuCours,RefEleve,present_abs_retard,remarques_retards) VALUES('' ,'info1' ,'$info2' ,'$info3' ,'$info4')";
Merci pour votre attention.
Etienne