erreur dans mon code php

Eléphant du PHP | 162 Messages

10 août 2011, 18:01

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
Modifié en dernier par msi79 le 11 août 2011, 14:58, modifié 1 fois.

Petit nouveau ! | 1 Messages

11 août 2011, 09:04

ok j'ai compris pour la variable NOTE . elle ne fait pas parti de SELECT c pourquoi 3. merci.
mais explique moi pourquoi le SELECT c'est retouvé en bas .

Eléphant du PHP | 162 Messages

11 août 2011, 12:20

jai mi SELECT poue selectionner le nom prenom ki sont deja dans la base

Eléphant du PHP | 162 Messages

11 août 2011, 13:39

j'ai expliqué ce que je voulait faire . il n ' ya personne pour m'aider ??

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

11 août 2011, 23:57

voici mes tables :
eleve( NUM,NOM,PRENOM,CLASSE,AGE,)
participe(NUM,id_eval,date_eval,note)
evaluation(id_eval,,type_eval)
les relation de tes tables ne sont pas correct et ton system ne pourra jamais fonctionner ainsi !

pourquoi ?

Parce que dans la table participe tu n'indique pas a qui appartient la note donc il est possible de faire quoique ce soit avec cette table.

elle devrait être
create table eleve( 
	NUM int ,
	NOM text,
	PRENOM text,
	CLASSE text,
	AGE text
)
create table participe(
	NUM int,
	id_eval int,
	id_eleve int,
	date_eval text,
	note float
)
create table evaluation(
	id_eval int,
	type_eval text
)
le id_eleve de la table participe correspond au NUM de la classe eleve !

a partir de la, et du code que je t'ai fournit, tu peux afficher un formulaire avec les noms de tous les élève de la classe en question. Il faut aussi afficher l'évaluation ou ajouter dans le formulaire de quoi ajouter cette évaluation dans la table.

Tu doit traiter ce formulaire avec une boucle et insère en boucle la chose.
pour cela tu peux utiliser une requête préparée.
afin de faciliter la chose, je t'invite a utiliser PDO :)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 162 Messages

12 août 2011, 00:19

j'ai modifié ma table participe comme tu me l"a conseillé.
si je comprend bien ma requète va s'ecrire comme ca :
"INSERT INTO participe(NOTE) values('".$NOTE."',(SELECT NUM FROM eleve WHERE NUM.eleve=id_eleve.participe ;))"

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 août 2011, 00:28

non, est ce que tu a compris ce que tu a mis la ?

Ta requête te renverra directement dans tes buts car elle n'est deja pas correcte.

commence par la formuler correctement et après ça ira.

tu a tous les éléments dans le formulaire (au pire s'il y a création d'évaluation tu récupère la clef primaire (id_eval) avant les insertions dans la table participe !).

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 162 Messages

12 août 2011, 00:33

vraiment je suis pas. explik moi mieux. depuis matin je suis dessus .

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 août 2011, 00:40

http://sqlpro.developpez.com/cours/sqlaz/dml/

fait un p'tit effort pour l’orthographe / grammaire je ne suis pas doué mais tu frise le ridicule au vu de l'utilisation de ton appli et ça demande des efforts de compréhension que je n'ai pas forcément envie de faire.

bonne lecture ;)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 162 Messages

12 août 2011, 00:43

ok. bien saisie.
je dis explique moi bien

Eléphant du PHP | 162 Messages

12 août 2011, 01:06

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 ;

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 août 2011, 02:03

t'expliquer quoi ?
on parle d'insertion tu fait un select ça ne peux pas aller.

une insertion c'est une requête INSERT INTO.

tu souhaite insérer des notes dans la table participe en spécifiant aussi la clef primaire de l'eval, celle de l'élève et date.

essai de construire cette requête, tu n'a pas compris le principe de l'insertion avec SQL ?

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 162 Messages

12 août 2011, 15:10

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 août 2011, 15:40

ben non, y a 4 champs dans la table tu n'en indique que deux, suivant la construction de la table c'est normal que cela ne fonctionne pas (dans le cas des colonne non null par exemple, est ce que le sgbd insère automatiquement la date du jour ? etc etc)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 162 Messages

12 août 2011, 16:30

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