Enreqistrer des notes d'eleves en php
je veux enregistrer les notes des eleves mais ma requete passe pas . s'il vous plait aider moi .
voici mon code :
<?php
$date = date("d-m-Y");
$heure = date("H:i");
echo 'Nous sommes le '.$date.' et il est '.$heure;
?>
<?php
if (isset($_POST["valider"])) {
$NOTE=trim($_POST["NOTE"]);
$conn = oci_connect("zana", "cool75sool", '(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)
))');
$sql=oci_parse($conn,"INSERT INTO participe(NOTE) values('".$NOTE."',(SELECT NUM FROM eleve WHERE NUM.eleve=Num.participe))");
$result = oci_execute($sql);
if ($result) {
$msg="<font color=green>insertion OK</font>";
}
else {
$msg="<font color=red>insertion impossible</font>";
}
/*
Analyse et exécution d'autres commandes ici...
*/
// Validation de la transaction
$committed = oci_commit($conn);
// 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 '------------------------Insersion OK !!!!!!!!!';}
}
?>
<!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>
</head>
<body>
<table width="200" border="0" align="center" bgcolor="#CCCCCC">
<tr>
<td colspan="2">-------------Sa Note------------- </td>
</tr>
<tr>
<td width="40">note</td>
<td width="144"><input type="text" name="NOTE" value=""/></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input type="submit" name="Valider" value="Enregistrer" /></td>
<td><input type="reset" name="Submit2" value="Annuler" /></td>
</tr>
</table>
</body>
</html>
13 réponses
L'objectif est d'enregistrer les notes des élèves via une page PHP connectée à Oracle, mais la requête d'insertion ne passe pas et empêche l'enregistrement des notes. Des causes techniques émergent, comme un nom de champ POST non aligné (Valider vs valider) et une requête SQL mal formée qui insère deux valeurs dans une seule colonne. La requête prévoit l'insertion sur une colonne unique (NOTE) avec une sous-requête pour récupérer l'ID, mais elle contient des parenthèses et des guillemets mal placés et utilise un alias inexistant (Num.participe). En cas de correctifs, il serait pertinent de séparer les valeurs dans les colonnes NOTE et ELEVE et d'utiliser une requête paramétrée avec OCI_BIND, afin d'éviter les erreurs de syntaxe et de sécuriser l'opération.
-
toujours rien meme avec l'espace
-
Pour finir sur la requete les guillemets autour de (NOTE,id_eleve,id_evaluation)
soit ('NOTE','id_eleve','id_evaluation')
En mysql c est les guillements du 7 en AltGr
regarde un topic du meme genre https://forums.commentcamarche.net/forum/affich-22872364-modification-profil-erreur-php
-
-
tu viens de m'achever la avec la notion de classe . je veux faire un truck sans passer par les classes
-
voici ma nouvelle table et ma nouvelle requête :
participe(NOTE,id_eleve,id_evaluation) /////////// id_eleve fait reference a NUM
$sql=oci_parse($conn,"INSERT INTO participe(NOTE,id_eleve,id_evaluation) values('".$NOTE."','".$id_eleve."','".$id_evaluation."')");
je reçois toujours pas d'insertion de note -
vu le nombre de fois ou tu as poster ce bout de code sur CCM.
Tu ne devrais pas chercher à comprendre (en trouvant un bon livre su PHP par exemple) plutôt que de faire développer ton script par tous les membres de ce forum ? -
je viens de rectifier ça mais toujours pas d'insertion .
-
voici mes tables : eleve( NUM,NOM,PRENOM,CLASSE,AGE,) participe(id_eleve,id_eval,date_eval,note) /////////// id_eleve fait reference a NUM evaluation(id_eval,,type_eval) j'ai enlevé SELECT qui se trouvait dans mon INSERT . j'ai mis : "INSERT INTO participe(NOTE,id_eleve) values('".$NOTE.",'".$id_eleve."')" . mais jusque la ca marche pas -
print_r($_POST) affiche les information de la variable $_POST
-
a quoi refère .$elevequialanote. et ou et comment l'utiliser
je suis perdu avec cette variable. explique moi son role -
au fait les élèves sont deja enregistré dans ma base de donnée . je veu enregistrer leur note apres chaque eveluation
-
j'ai pas compris ton explication alors j'ai essayé ca mais ca marche toujours pas !
:
SELECT a.NUM,b.id_eleve FROM eleve a,participe b WHERE a.NUM=b.id_eleve ; -
voici mes tables:
eleve( NUM,NOM,PRENOM,CLASSE,AGE,)
participe(NUM,id_eleve,id_eval,date_eval,note)
evaluation(id_eval,,type_eval) -
je comprend pa cette variable : .$elevequialanote.
-
Bonsoir,
$sql=oci_parse($conn,"INSERT INTO participe(NOTE) values('".$NOTE."',(SELECT NUM FROM eleve WHERE NUM.eleve=Num.participe))");
c est ce truc la qui marche pas ???
ton hypothèse de laison NUM.eleve=Num.participe ne semble pas lier à la table eleve...
si je comprends bien ta liaison : ...(SELECT NUM FROM eleve WHERE eleve.NUM=".$elevequialanote."))
J espère t avoir eclairé.