Corriger mon code php

msi79 Messages postés 537 Statut Membre -  
lupuz Messages postés 71 Statut Membre -
je suis professeur de maths et je veux créer un code php pour enregistrer les notres de mes eleves dans ma base de donnée oracle .
j'ai essayé de créer un code mais ca marche pas .
alors je ici pour solliciter votre aide .merci d'avance.

voici mes tables :
eleve( NUM,NOM,PRENOM,CLASSE,AGE,)
participe(NUM,id_eval,date_eval,note)
evaluation(id_eval,,type_eval)

au fait dans ma logique je supose que les eleves sont deja inscrit dans ma table eleve avec un autre formulaire que j'ai crée qui marche bien .
maintenant ce que je veux :
je supose que le prof vien de faire un devoir ou une interrogation et il veut enregistrer les note en se servant de la liste des eleve qui est deja dans la base .
donc avec la liste deja dedans il inserre les notes et en meme temps les note sont affiché en face dans le champs MaNOte

et voici mon code :

<?php
// connexion au sgbd de toute façon c'est utilisé par tout dans la page 
$conn = oci_connect("zana", "mdp", '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldb)
(INSTANCE_NAME = orcldb)
(GLOBAL_NAME = orcldb)
))');

if (isset($_POST["Enregistrer"])) {
// la suite est discutable un array_walk (par exemple) opurr être plus intérréssant <img src="./images/smilies/icon_wink.gif" alt=";)" title="Wink" />
//$NOM=trim($_POST["NOM"]);
//$PRENOM=trim($_POST["PRENOM"]);
//$CLASSE=trim($_POST["CLASSE"]);
//$NOTE=trim($_POST["NOTE"]);

//Dans ma base de donnée j'ai deja enregistrer des eleves de différentes classes
//apres avoir fait une evaluation je veux enregistrer les notes des éleves par exemples ceus de la 4eme classe
// alors je crée une requtte sql qui me permet d'abord de faire une selection des eleves de la 4eme5

//au cas ou ces élèves existent ,dans le champ NOTE qui doit se trouver devant chaque nom ,j'inscrit la note de cet élève  

if (!empty($NOM)) { 
    $sql=oci_parse($conn,"INSERT INTO participe(NOTE) values('".$NOTE."')");
    $result = oci_execute($sql);
    //Analyse et exécution d'autres commandes ici...
    // Validation de la transaction
    $committed = oci_commit($conn);// utilise
    // Vérification de la validation : si une erreur est survenue, afficher
    // le message d'erreur
    if (!$committed) {
        $error = oci_error($conn);
        echo 'Validation échouée. Oracle dit : ' . $error['message'];
    }
    else{ 
	    echo $liste_etu['NOTE'] ;
        echo '------------------------Insersion OK !!!!!!!!!';}
    }
   }
else
   { // au cas ou lélève n'existe pas alors je reçois ce message
       echo "LE NOM DE l'élève ne peux être vide !!!";
   }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {color: #FFFFFF}
.Style4 {color: #FFFFFF; font-weight: bold; }
.Style5 {
color: #CCCCCC;
font-weight: bold;
}
-->
</style>
</head>

<body>

<div align="center">
<h1><a href="MonSiteOK.php" title="Acceuil !!!!" class="Style5">
<input type="image" name="imageField" src="btmylod_1.png" />
</a><em>>>> LISTE DES ELEVES DE 4ème 5 </em> <<<
</h1>
</div>
<form id="form1" name="form1" method="post" action="">
<table width="1065" border="0" align="center" cellspacing="2">
<tr bgcolor="#999999">
<th width="233" scope="row"><span class="Style3">NOM</span></th>
<td width="274"><div align="center" class="Style4">PRENOM</div></td>
<td width="208"><div align="center" class="Style4">CLASSE</div></td>
<td width="144"><div align="center" class="Style4">NOTE</div></td>
<td width="184"><div align="center" class="Style4">MaNote</div></td>
</tr>
<?php
$i=0;
$paire= '33FFFF';
$impaire= 'C0C0C0';
// requete SQL pour l'affichage de la table 
$res = oci_parse($conn,"SELECT NUM,NOM,PRENOM,CLASSE FROM eleve WHERE CLASSE='4eme5' ORDER BY NOM ASC");
if ($res === false ){
    // affichage d'un message d'erreur !
}
else {
    $req = oci_execute($res);
    if ($req === false ){
        // affiche le message d'erreur. 
    }
    else {
        // la je met des { pour le else mais sans ça fait pareil <img src="./images/smilies/icon_wink.gif" alt=";)" title="Wink" />
        while($liste_etu = oci_fetch_assoc($res)) {
        ?>
        <tr bgcolor="#<?php
        if( ($i%2) === 0) echo $paire;
        else echo $impaire; ?>">
        <td><?php echo $liste_etu['NOM'] ?></td>
        <td><?php echo $liste_etu['PRENOM'] ?></td>
        <td><?php echo $liste_etu['CLASSE'] ?></td>
        <td><input type="text" name="NOTE[]" value=" "/><input type="hidden" name="NUM[]" value="<?php echo $list_etu['NUM'];?>"</td>

        <td><?php //echo $ech ?></td>
        </tr>
        <?php
        $i++;
        }
}
}
?>
</table>
<table width="200" border="0">
  <tr>
    <td><input type="submit" name="Enregistrer" value="Enregistrer" /></td>
    <td><input type="submit" name="annule" value="Annuler" /></td>
  </tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</form>
<p>&nbsp;</p>
</body>
</html>
A voir également:

3 réponses

lupuz Messages postés 71 Statut Membre 11
 
Bonjour,

Lors de l'ajout de la note, tu ne lie pas cette dernière à un élevé
"INSERT INTO participe(NOTE) values('".$NOTE."')" il manque d'une façon ou d'une autre un identifiant de l'élevé.
0
msi79 Messages postés 537 Statut Membre
 
oui je vois mais peut tu m'aider a construire cette requète.
voici a quoi j'ai pensé :
 $sql=oci_parse($conn,"INSERT INTO participe(NOTE) values('".$NOTE."',(SELECT NUM FROM eleve ;))");
0
lupuz Messages postés 71 Statut Membre 11
 
Cette requête va affecter toutes les notes au même élève :
$sql=oci_parse($conn,"INSERT INTO participe(NOTE) values('".$NOTE."',(SELECT NUM FROM eleve ;))");

Le NUM de l'élève est passé en POST avec la note
la bonne requête serait plutôt du type :

$sql=oci_parse($conn,"INSERT INTO participe(NOTE, NUM) values('".$NOTE."','".$NUM"');
0