Corriger mon code php
msi79
Messages postés
537
Statut
Membre
-
lupuz Messages postés 71 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 :
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> </p>
<p> </p>
<p> </p>
</form>
<p> </p>
</body>
</html>
A voir également:
- Corriger mon code php
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
3 réponses
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é.
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é.
oui je vois mais peut tu m'aider a construire cette requète.
voici a quoi j'ai pensé :
voici a quoi j'ai pensé :
$sql=oci_parse($conn,"INSERT INTO participe(NOTE) values('".$NOTE."',(SELECT NUM FROM eleve ;))");
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"');
$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"');