Peux tu utiliser la balise
plutot que [code] afin de coloriser ton code ? cela permet de mieux voir ce qui ce passe ;)
je vais mettre les commentaires suivant lecture du code de haut en bas (risque de mélange ^^)
- ligne 14 : $result = @mysql_query ($rq) or die (mysql_error()); <= la faut virer l'@ c'est une très mauvaise idée tu ne pourras pas voir d'éventuelle message d'erreur et donc impossible de debugguer ! (surtout en phase de conception ^^)
- ligne 28 include ('connexion au serveur.php'); : cela ne serait pas plus judicieux [b]avant[/b] le traitement du formulaire ? (parce que bon sinon pas de connexion au serveur mysql :) )
- ligne 32 : $rq = " SELECT $username.id_eleve, id_matiere, liste_eleves.nom, liste_eleves.id_eleve
FROM $username
INNER JOIN liste_eleves ON $username.id_eleve=liste_eleves.id_eleve
WHERE id_matiere='$id_groupe'
ORDER BY liste_eleves.nom
";
d'où sortent $username et $id_groupe ?
au vu de la requete tu a une table pas utilisateur ? si oui ça sens le défaut de conception a plein nez de plus pourquoi récupérer $username.id_eleve [b]&[/b] liste_eleves.id_eleve qui représentent la même chose ?
- ligne 54 a 58 : pourquoi utiliser une indexation numérique alors que tu utilise un mysql_fetch_array ? utiliser le nom des colonnes est essentielle pour les gens qui doivent relire ton code (moi en l’occurrence pour le moment mais aussi toute personne susceptible de t'apporter de l'aide ou de maintenir ton code plus tard !=. donc la utilise plutot [url=http://www.php.net/mysql_fetch_assoc]mysql_fetch_assoc[/url]
de plus pourquoi utiliser d'autre variable ? utilise directement le tableau tu sais déja utiliser la concaténation ;)
ligne 64 : re include ('connexion au serveur.php'); quel intérêt c'est déjà fait ? ton fichier s'appelle réellement ainsi où la c'est juste pour nous ? sinon vire les espaces c'est source d'emmerde.
- ligne 65 : cette requête n'est pas a faire a chaque boucle de traitement c'est même plus de contre-performance c'est un gouffre :) tu utilise la requête pour créer une variable que tu affichera a chaque fois, une seule requête et un seule traitement.
ce qui donne
[php]<?php
$sql2 = 'SELECT commentaire
FROM table_commentaires
ORDER BY positif DESC, commentaire ASC';
$req2 = mysql_query($sql2) or die('Erreur SQL !<br><font size="2">'.$sql2.'<br>'.mysql_error());
$select = '<select name="commentaire"><option selected="selected"></option>';
while($data2 = mysql_fetch_row($req2))
{
$commentaire=$data2[0];
$select .= '<option value="'.$commentaire.'">'.$commentaire.'</option>'."\n";
}
$select .= '</select>';
?>
Avant le while ligne 54
et pour affiche le select dans la boucle while (ligne 54 actuellement) echo '<td align="left" valign="top">'.$select.'</td></tr>';
- ligne 85 : je suppose que tu confond ceci avec le traitement du formulaire ? le je dirais simplement
comment récupérer les valeurs d'un formulaire ou
la même chose sur phpdebutant.org
- pour le traitement du formulaire je te conseil un requete préparée qui fait pour ton cas

Stealth35 nous indique comment faire
ICI
ton code pourrais être ainsi
<?php
if (isset($_POST['submit2']) && isset ($_POST['selectcommentaire']) && isset($_POST['commentaire']) && isset($_POST['ideleve']) &&
isset($_POST['resultat']) )
{
/* validation du formulaire
la il faut utiliser une boucle foreach sur un des tableaux de $_POST ($_POST['ideleve']) par exemple)
il est possible (et préférable) de vérifier que les éléments soient bien des tableaux et qu'ils aient la même taille pour éviter des soucis
utilise une requete préparée pour réaliser l'insertion.
*/
$rq = "INSERT INTO octobre (id_eleve, id_enseignant, matiere, commentaire, resultat, nom_enseignant, nom_eleve, groupe)
VALUES ($id_eleve, $id_enseignant, $id_groupe,$commentaire, $resultat, $nom_enseignant, $nom_eleve, $groupe)";
$result = mysql_query ($rq) or die (mysql_error());
mysql_close();
}
?>
********************** Mon formulaire commence ici! Je l'envoie dans le fichier, mais je pourrais l'envoyer à un autre si c'est mieux*************************
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p class = "Section">Communication d'octobre</p>
<fieldset>
<?php
include ('connexion au serveur.php');
/******************* entête du tableau ***************************/
echo "<font face=Arial size=2>
<table align='left' cellspacing='2' cellpadding='2'>
<tr>
<td align='left'><b>Nom de l'élève</b></td>
<td align='left'><b>Résultat</b></td>
<td align='left'><b>Commentaires</b></td>
<td align='left'><b>Choix de réponses!</b></td>
</tr></font>";
/*********************** Formulaire à remplir **************************************************/
$sql2 = 'SELECT commentaire
FROM table_commentaires
ORDER BY positif DESC, commentaire ASC';
$req2 = mysql_query($sql2) or die('Erreur SQL !<br><font size="2">'.$sql2.'<br>'.mysql_error());
$select = '<select name="selectcommentaire[]"><option selected="selected"></option>';
while($data2 = mysql_fetch_assoc($req2)) {
$commentaire=$data2['commentaire'];
$select .= '<option value="'.$commentaire.'">'.$commentaire.'</option>'."\n";
}
$select .= '</select>';
/*********************je fais afficher la liste des élèves pour lesquels on rempli le formulaire *******************************/
$rq = 'SELECT '.mysql_real_escape_string($username).'.id_eleve, id_matiere, liste_eleves.nom
FROM '.mysql_real_escape_string($username).'
INNER JOIN liste_eleves ON $username.id_eleve=liste_eleves.id_eleve
WHERE id_matiere= '.mysql_real_escape_string($id_groupe).'
ORDER BY liste_eleves.nom';
$result = mysql_query ($rq);
while ($ligne = mysql_fetch_assoc($result)){
$nom_eleve=$ligne[2];
$groupe=$ligne[1];
$id_eleve=$ligne[3];
echo '<td align="left" valign="top">'.$ligne['nom'].'<input type="hidden" name="ideleve[]" value="'.$ligne['id_eleves'].' /></td>
<td align="left" valign="top"><input type="text" name="resultat[]" size="3" maxlength = "3"/><br></td>
<td align="left"><textarea name="commentaire[]"rows="8" cols="50"></textarea></td>';
echo '<td align="left" valign="top">'.$select.'</td></tr>';
}
echo '</table>';
mysql_close();
?>
</fieldset>
<div align="center">
<input type="submit" name="submit2" value="Valider les commentaires" />
</div>
</form>
@+