Comment récupérer la valeur d'une clé ?

Adhe -  
 Adhe -
Bonjour,

je souhaite enregistrer la liste des élèves présents/absents d'une classe à l'aide du formulaire ci-dessous :

<form method='POST' action='VerifVar2.php'><table width= border=0 align=center><tr>
<td width=100 bgcolor='#CCCCCC' div align=left><input type='text' name='RefEleve_260[]' value=260>
<td width=100 bgcolor='#CCCCCC' div align=center> <input type='text' name='idDuCours_260[]' value=205 />
<td width=100 bgcolor='#CCCCCC' div align=center><select name='PresentAbsent_260[]' size=3>
<option selected='selected'>Present</option>
<option>Absent</option>
<option>Retard</option>
</select></td>
<td width=100 bgcolor='#CCCCCC' div align=center> <input type='text' name='remarques_260[]' value=19-10-2010 /></td>
</td>
</tr>
<td width=100 bgcolor='#CCCCCC' div align=left><input type='text' name='RefEleve_263[]' value=263>
<td width=100 bgcolor='#CCCCCC' div align=center> <input type='text' name='idDuCours_263[]' value=205 />
<td width=100 bgcolor='#CCCCCC' div align=center><select name='PresentAbsent_263[]' size=3>
<option selected='selected'>Present</option>
<option>Absent</option>
<option>Retard</option>
</select></td>
<td width=100 bgcolor='#CCCCCC' div align=center> <input type='text' name='remarques_263[]' value=19-10-2010 /></td>
</td>
</tr></table><br><div align='center'><input type='submit' value='OK' ></div><br></form>

Dans la form VerifVar2.php, je récupère les variables postées avec le code :

foreach ($_POST as $key => $value) {
// echo "<b>{$value} </b></br>";
$tab_info = $value;
$info1 = $tab_info[0];
//$message = "<b>$key = $info1</b><br>";
echo $message;
}

A présent je voudrai récupérer la valeur de chaque clé afin d'enregistrer les informations pour chacun des élèves dans les champs de ma base 'RefEleve', 'idDuCours','PresentAbsent,'remarques' .

Pour cela, je dois récupérer la valeur des clés mais je ne vois pas comment m'y prendre.

Auriez vous une idée ?

Merci d'avance à tous ceux ou celles qui pourraient m'aiguiller.

Etienne
A voir également:

7 réponses

Reivax962 Messages postés 3742 Statut Membre 1 011
 
Bonjour,

De quelles clés parles-tu ?
Sont-ce les 260 et 263 des extraits de code que tu donnes ?

Xavier
0
Adhe
 
Bonjour Xavier,

tout d'abord merci pour ton attention.

avec le code :
foreach ($_POST as $key => $value) {
// echo "<b>{$value} </b></br>";
$tab_info = $value;
$info1 = $tab_info[0];
//$message = "<b>$key = $info1</b><br>";
echo $message;
}

je reçois un flux de variables qui ressemble à ça (ici pour 2 élèves n° 260 et n°263):

RefEleve_260 = 260
idDuCours_260 = 206
PresentAbsent_260 = Present
remarques_260 = 19-10-2010

RefEleve_263 = 263
idDuCours_263 = 206
PresentAbsent_263 = Present
remarques_263 = 19-10-2010

Ce que j'appelle les clés c'est :
RefEleve_N°DeLEleve
idDuCours_N°DeLEleve
PresentAbsent_N°DeLEleve
remarques_N°DeLEleve

le N°DeLEleve change pour chaque élève ainsi que les valeurs (des clés qui sont les valeurs placées après le = dans le flux des variables)

Désolé, je fais de mon mieux pour essayer de me faire comprendre... !
0
Reivax962 Messages postés 3742 Statut Membre 1 011
 
OK.
Donc c'est tout simple, dans cette boucle, tu as déjà la clé dans la variable $key !
0
Adhe
 
Oui c'est sans doute évident, mais je ne sais pas comment je peux isoler la valeur de chaque clé pour les enregistrer.

par exemple pour l'élève 260, j'ai les infos :

RefEleve_260 = 260
idDuCours_260 = 206
PresentAbsent_260 = Present
remarques_260 = 19-10-2010

Question, comment faire pour retrouver dans mon tableaux de variable
la valeur 260 qui correspond à la clé RefEleve_260
la valeur 206 qui correspond à la clé idDuCours_260
la valeur Present qui correspond à la clé PresentAbsent_260
la valeur 19-10-2010 qui correspond à la clé remarques_260

Le but c'est d'affecter ces valeurs aux variables :
'$RefEleve','$idDuCours','$PresentAbsent','$remarques'
afin des les enregistrer dans les champs de ma base avec une requête de type :
$sql = "INSERT INTO interface_nom_classe (nomdelaclasse) VALUES ( '$RefEleve','$idDuCours','$PresentAbsent','$remarques') " ;
$requete = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Reivax962 Messages postés 3742 Statut Membre 1 011
 
D'aaaaccord, je comprends mieux. Effectivement ça demande un peu de remue-méninge :)
A priori, rien ne nous assure que le moteur php va lister les variables POST dans le bon ordre.

Je te propose donc de créer un nouveau tableau, que tu reparcourras ensuite.
Comme ceci :
$eleves = array(); 
foreach ($_POST as $key => $value) { 
    $eleve_temp = explode("_", $key); 
    $id_temp = $eleve_temp[1]; 
    if (!isset($eleves[$id_temp])) 
        $eleves[$id_temp] = array(); 

    $eleves[$id_temp][$eleve_temp[0]] = $value; 


    // echo "<b>{$value} </b></br>"; 
    $tab_info = $value; 
    $info1 = $tab_info[0]; 
    //$message = "<b>$key = $info1</b><br>"; 
    echo $message; 
}

Puis :
foreach ($eleves as $unEleve) 
{ 
    $RefEleve = $unEleve['RefEleve']; 
    $idDuCours = $unEleve['idDuCours']; 
    $PresentAbsent = $unEleve['PresentAbsent']; 
    $remarques = $unEleve['remarques']; 

    $sql = "INSERT INTO interface_nom_classe (nomdelaclasse) VALUES ( '$RefEleve','$idDuCours','$PresentAbsent','$remarques') " ; 
    $requete = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
}


Xavier
0
Adhe
 
Merci Xavier pour ton aide.

Le problème n'est pas encore résolu, car à la place des valeurs des clés, j'obtiens le résultat 'Array' pour chacune des variables
$RefEleve
$idDuCours
$PresentAbsent
$remarques
0
Adhe
 
Re !

pour récupérer la valeur de la clé, j'ai modifié la 2ème partie de code comme suit :

foreach ($eleves as $unEleve)
{
$RefEleve = $unEleve['RefEleve'];
$tab_info = $RefEleve;
$RefEleve = $tab_info[0];

$idDuCours = $unEleve['idDuCours'];
$tab_info = $idDuCours;
$idDuCours = $tab_info[0];

$PresentAbsent = $unEleve['PresentAbsent'];
$tab_info = $PresentAbsent;
$PresentAbsent = $tab_info[0];

$remarques = $unEleve['remarques'];
$tab_info = $remarques;
$remarques = $tab_info[0];
$sql = "INSERT INTO interface_nom_classe (nomdelaclasse) VALUES ( '$RefEleve','$idDuCours','$PresentAbsent','$remarques') " ;
$requete = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}

et ça marche !!!!

je te remercie infiniment
0