Aide pour php

yusukessj Messages postés 297 Statut Membre -  
djflexlive Messages postés 577 Statut Membre -
Bonjour à tous,
je suis bloqué dans mon script php
voila, je veux qu'un enseignant accède à la base de donnée et enregistre les note de ses élève
j'ai pu faire le script pour qu'il regarde ses élève, pour enregistrer les notes j'ai fait cela :

$result = mysql_query( "select nom, tab_etudiant.id from tab_etudiant where specialite= '$hiddenid'" );

while ($donnees = mysql_fetch_array($result))
{

echo "<form action=\"mo_phage.php\" method=\"post\" >";
echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';

echo "<input type=\"text\" name=\"nota\" >";

echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";

echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
echo "</form>";

}
et la page cible mo_phage c'est :

$hiddenid = $_POST['hiddenid_eleve'];

$nota = mysql_real_escape_string(htmlspecialchars($_POST['nota'])); // De même pour le message

$query ="UPDATE tab_etudiant SET note_etud= '$nota' WHERE id = '" . $hiddenid . "'";

mysql_query($query) ;

echo "merci de taper les note de l etudiant";

le problème c'est qu'il m'affiche cela

http://94.img.v4.skyrock.net/94f/hachine/pics/2037175601_1.jpg

et moi je veux qu'il affiche cela
http://94.img.v4.skyrock.net/94f/hachine/pics/2037177251_1.jpg
merci
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. djflexlive Messages postés 577 Statut Membre 95
     
    echo "<form action=\"mo_phage.php\" method=\"post\" >";
    
    $result = mysql_query( "select nom, tab_etudiant.id from tab_etudiant where specialite= '$hiddenid'" );
    
    while ($donnees = mysql_fetch_array($result))
    {
    
    echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';
    
    echo "<input type=\"text\" name=\"nota\" >";
    
    
    
    echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";
    
    
    } 
    
    echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
    echo "</form>";


    Ca serait déjà mieux, mais le probleme c'est que y'a qu'un eleve selectionné dans ton formulaire, alors que t'en voudrais plusieurs, c'est ca ?
    0
  2. yusukessj Messages postés 297 Statut Membre 16
     
    merci, quand je fais ça, ca n'enregistre que le dernier élève, les autres ne s'enregistrent pas
    0
  3. djflexlive Messages postés 577 Statut Membre 95
     
    echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";

    Normal, ca va te selectionner le dernier eleve dans le champs hidden. Tu connais un peu ou pas les tableaux "array" ? Tu pourrais passer par ca pour récupérér tous les eleves par ex.
    0
  4. yusukessj Messages postés 297 Statut Membre 16
     
    je suis désolé, je ne sais pas travailler avec ca, vous pouvais me montrer comment faire svp
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. djflexlive Messages postés 577 Statut Membre 95
     
    Y'a des chances que ca ne fonctionne pas du premier coup mais ca te mets sur la bonne voie :

    PAGE 1:
    
    <?php
    /* Ajout de variables comptant le nb d'eleves et stockant les id eleves */
    $id_eleves = '';
    $nb_eleves = 0;
    
    echo "<form action=\"mo_phage.php\" method=\"post\" >";
    
    $result = mysql_query( "select nom, tab_etudiant.id from tab_etudiant where specialite= '$hiddenid'" );
    
    while ($donnees = mysql_fetch_array($result))
    {
    
    	/* Incrémentation du compteur et stockage des ID*/
    	$nb_eleves++;
    	$id_eleves .= $donnees['id'].'-';
    	
    	echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';
    	
    	/* Modif ici du champs texte par nota-ID_ELEVE */
    	echo '<input type="text" name="nota-'.$donnees[id].'" >';
    
    } 
    /* On vire le dernier '-' de $id_eleves*/
    $id_eleves = substr($id_eleves,0,strlen($id_eleves)-1);
    
    /* On modifie le champs hidden pour indiquer les ID eleves */
    echo '<input type="hidden" name="id_eleves" value="'.$id_eleves.'">';
    /* On ajoute un autre champs hidden pour indiquer le nb d'eleves */
    echo '<input type="hidden" name="nb_eleves" value="'.$nb_eleves.'">';
    
    echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
    echo "</form>";
    ?>¨
    
    PAGE 2:
    
    <?php
    /* Récupération des champs hidden */
    $id_eleves = $_POST['id_eleves'];
    $nb_eleves = $_POST['nb_eleves'];
    
    /* On crée un tableau stockant les ID eleves */
    $id_eleves = explode('-',$id_eleves);
    
    /* Si c'est en zone sécurisé et qu'il n'y a pas de risques, cette ligne est inutile donc je la commente */
    //$nota = mysql_real_escape_string(htmlspecialchars($_POST['nota'])); // De même pour le message
    
    /* On crée une boucle qui vas récuperer tous les $_POST['notas-X'] et updater tous les id eleves */
    for ($i=0;$i<=$nb_eleves;$i++)
    {
    	$nota = $_POST['nota-'.$id_eleves['$i']];
    	$query = mysql_query( "UPDATE tab_etudiant SET note_etud= '$nota' WHERE id = '" . $id_eleves['$i'] . "'" );
    	mysql_query($query) ;
    }
    
    echo "merci de taper les note de l etudiant"; 
    ?>
    
    0
  7. djflexlive Messages postés 577 Statut Membre 95
     
    Alors, as tu essayé ?
    0