Enregistrer plusieurs valeurs pour plusieurs éléments
Posté : 19 oct. 2012, 23:25
Bonjour,
sous c e titre un peu abscons se cache un petit problème insolvable pour mes modestes compétences !
J'aimerais pour une liste de plusieurs personnes enregistre un ou plusieurs fonctions dans une table mais j'ai beau chercher, je ne trouve pas la solution !!
J'arrive à construire le tableau à l'aide de ce code
Mais le problème se pose lorsque je veux enregistrer les fonctions sélectionnées, voici le code que j'ai essayé d'écrire mais qui ne fonctionne pas :
Quelqu'un pourrait-il éclairer ma lanterne ?
Merci d'avance de votre réponse
Bien cordialement
sous c e titre un peu abscons se cache un petit problème insolvable pour mes modestes compétences !
J'aimerais pour une liste de plusieurs personnes enregistre un ou plusieurs fonctions dans une table mais j'ai beau chercher, je ne trouve pas la solution !!
J'arrive à construire le tableau à l'aide de ce code
Code : Tout sélectionner
<form name="frm" action="" method="post">
<h1><?php echo $page_title ; ?></h1>
<p><center><b>Il y a <?php echo $num; ?> adulte<?php echo $pluriel; ?> inscrit<?php echo $pluriel; ?> dans le groupe <?php echo $GroupeN ; ?>.</b></center></p>
<table width="auto" align="center" cellspacing="0" cellpadding="3" border="0">
<tr valign="top">
<td width="auto" valign="middle" align="left" class="hgb"><b>Nom</b></td>
<td width="auto" valign="middle" align="left" class="hgb"><b>Prénom</b></td>
<td width="auto" valign="middle" align="center" class="hgb"><b>Date de naissance</b></td>
<td width="auto" valign="middle" align="center" class="hgb"><b>Rôle</b></td>
<td width="auto" valign="middle" align="center" class="hgbd"><b>Fonction</b></td>
</tr>
<?php
// Afficher tous les enregistrements.
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$fonction = '';
// calcul de la date de naissance
$D_Naiss = explode('-', $row[3]);
$JD_Naiss = $D_Naiss[2];
$MoisD_Naiss = $D_Naiss[1];
$MD_Naiss = $tab_mois[$MoisD_Naiss-1];
$AD_Naiss = $D_Naiss[0];
// calcul du rôle
if ($row[4] == '1') {
$fonction = 'Nageuse';
} else {
$fonction = ' ';
}
if ($row[5] == '1') {
if ($fonction == ' ') {
$fonction = $fonction . 'Entraîneur';
} else {
$fonction = $fonction . '<br />Entraîneur';
}
} else {
$fonction = $fonction . '';
}
if ($row[6] == '1') {
if ($fonction == ' ') {
$fonction = $fonction . 'Comité';
} else {
$fonction = $fonction . '<br />Comité';
}
} else {
$fonction = $fonction . '';
}
if ($row[7] == '1') {
if ($fonction == ' ') {
$fonction = $fonction .'Externe';
} else {
$fonction = $fonction .'<br />Externe';
}
} else {
$fonction = $fonction .'';
}
?>
<tr>
<td valign="middle" align='left' class="gb"><font size='-1'><?php echo stripslashes($row[1]) ; ?></font></td>
<td valign="middle" align='left' class="gb"><font size='-1'><?php echo stripslashes($row[2]) ; ?></font></td>
<td valign="middle" align='center' class="gb"><font size='-1'><?php echo $JD_Naiss." ".$MD_Naiss." ".$AD_Naiss ; ?></font></td>
<td valign="middle" align='center' class="gb"><font size='-1'><?php echo $fonction; ?></font></td>
<td align="center" class="gbd">
<?php echo '
<select name="Fonction'.$row[0].'[]" multiple size="3">';
mysql_select_db($database_dbprotect, $dbprotect);
// requête sur la base Fonction
$verif_query_Fonction=sprintf("SELECT *
FROM ".$base."fonction
ORDER BY id_Fonc ASC");
$verif_Fonction = mysql_query($verif_query_Fonction, $dbprotect) or die(mysql_error());
while ($rowFon = mysql_fetch_row($verif_Fonction)) {
$selected = ($rowFon[0] == $_POST["Fonction$row[0]"]) ? ' selected' : '';
echo "<option value='".$rowFon[0]."'".$selected.">".stripslashes($rowFon[1])."</option>";
}
echo '</select>';
?>
</td>
</tr>
<?php
} //end while
?>
</table>
<div align="center"><input type="submit" name="submit" value="Mise à jour des fonctions" /></div>
</form><!-- fin du formulaire -->
Code : Tout sélectionner
// Action si le bouton "Mise à jour des fonctions" est cliqué
if (isset($_POST['submit'])) {
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$cle = $row[0];
$Fonction = $_POST["Fonction$row[0]"];
if ($Fonction == -1) {
// on passe à l'élément suivant
} else {
if(($_POST['Fonction$row[0]']) && !empty($_POST['Fonction$row[0]'])){
$Col1_Array = $_POST['Fonction$row[0]'];
//print_r($Col1_Array);
foreach($Col1_Array as $selectValue){
//enregistrement des valeurs sélectionnées
$Requete = "INSERT INTO ".$base."fonction
(id_Mem, id_An, id_Gr, Fonction)
Value ('$cle', '$_SESSION[id_an]', '$Groupe', '$fonction')";
$resRequete = mysql_query($Requete) or die(mysql_error());
}
}
}
}
// si tout s'est bien passé, retour à l'accueil
header("Location:../../accueil.php");
}
Merci d'avance de votre réponse
Bien cordialement