Récupérer les variables d'un formulaire pour les enregister dans BDD

Récupérer les variables d'un formulaire pour les enregister dans BDD - PHP - Programmation

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

Reply

Marsh Posté le 13-10-2010 à 15:14:55   

Reply

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


Message édité par roondar le 13-10-2010 à 15:48:50
Reply

Marsh Posté le 13-10-2010 à 15:48:49    

La requête s'exécute par un mysql_query($sql).


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

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.

Reply

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.


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

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.

Reply

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.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed