Trois choses m'étonnent:
que les indices commencent à 16
que les indices soient discontinus
quil n'y ait pas de id_class dans les posts
ce sont des facteurs de complication de la consultation de ces données.
en effet en utilisant un while comme tu fais tu as forcément une erreur:
$i = 0;
while($i < $nb_classe)
{
//LES TABLEAUX SONT INDEXES PAR ID_CLASSE
$id_classe = $_POST['id_classe'];
var_dump(id_classe); //serait instructif
$prof_referent = $_POST['prof_ref'][$id_classe]; //ici il y a une erreur
$prof_prin = $_POST['prof_prin'][$id_classe];
mysql_query (" UPDATE classes SET prof_referent = '$prof_referent', prof_prin = '$prof_prin'
WHERE id_classe = '$id_classe' ") ;
$i++;
/* echo '<script language="Javascript"> document.location.replace("gest_classes.php"); </script>'; */
}
}
Quant à moi je modifierais le formulaire pour avoir en sortie un seul tableau
$classes = array ("num" =>, "princ" =>, "referent" =>);
<?PHP
$chaine = "<form method = 'post' action = 'traiter.php'>";
for ($i = 16; $i <=40; $i++)
{
$nom = "classe[$i]['classe']";
$chaine.= "<br> <input type = 'text' nama = '$nom' />";
$nom = "classe[$i]['princ']";
$chaine.= "<input type = 'text' nama = '$nom' />";
}
print "$chaine";
?>