petite application par php/mysql eleve+note
Bonjour tout le monde,
Je suis en train de faire une petite application web avec php/mysql ….
Dans cette application j’ai 2 table dans ma base de donner, 1er table nommé ELEVE(#id1,nom,prenom) et 2eme table nommé NOTE (#id2,nom,prenom,note1,note2)
mon problème : je peut récupère et afficher tout les enregistrements de table ELEVE «les noms et prenoms de tout les eleves dans cette table» et ajoute une formulaire qui contient note1+note2 pour chaque eleves (nom+prenom de table ELEVE) ---->enregistre tout (nom+prenom de table ELEVE , et note1+note2 que j’ai saisis par formulaire) dans table NOTE…
Si vous avez une solution à mon problème…
je remercie tout en avance
Réponses apportées à cette discussion
Salut,
je vois déjà un défaut de conception : une redondance inutile des noms et prénoms.
On peut parfaitement lier deux tables, chacune conservant ses propres informations.
On peut donc imaginer une table où on stocke les élèves, et une autre où on ne stocke QUE les notes et un repère permettant de savoir à quel élève correspond telle ou telle note.
Exemple de description de ces deux tables :
DESC t_eleve_elv;
+-----------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+---------+----------------+
| elv_id | INT | NO | PRI | NULL | auto_increment |
| elv_nom | VARCHAR(64) | NO | | | |
| elv_prenom | VARCHAR(64) | NO | | | |
+-----------------+------------------+------+-----+---------+----------------+
DESC t_notes_nts;
+-----------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+---------+----------------+
| nts_id | INT | NO | PRI | NULL | auto_increment |
| elv_id | INT | NO | MUL | NULL | |
| nts_note | FLOAT(4,2) | NO | | | |
| nts_date | DATE | NO | | | |
+-----------------+------------------+------+-----+---------+----------------+
Première observation, la manière de nommer les tables et les colonnes : les tables sont ici préfixées par un « t_ » (t = table) et suffixées avec un trigramme (trois lettre ressemblant à une forme d'abréviation du nom lui-même. Ce trigramme sert ensuite de pérfixe aux colonnes. On voit ainsi immédiatement les clés étrangères dans une table parce que leur préfixe ne correspond pas au suffixe de la table. Dans la table t_notes_nts, un a une colonne elv_id qui est une clé étrangère correspondant à la clé primaire de la table t_eleves_elv. J'ai ajouté une colonne nts_date pour avoir la date de la note, on pourrait éventuellement ajouter d'autres informations, à ajuster au besoin. Je n'ai pas mis deux colonnes de notes : en fait, il ne faut pas être limité à un nombre défini de note par élève : donc on ajoute autant de note qu'on le souhaite, un élève peut avoir de 0 à N notes. On pourrait distinguer certaines pour un même élève par exemple en ajoutant une colonne « nts_matière » ou encore avoir une autre table listant les matières et avoir une autre clé étrangère dans la table des notes.
Partant de là, on peut récupérer toutes les notes avec une simple jointure, par exemple comme ceci :
SELECT
el.elv_id,
el.elv_nom,
el.elv_prenom,
nt.nts_id,
nt_nts_note,
nt.nts_date
FROM t_eleves_elv el
INNER JOIN t_notes_nts nt ON el.elv_id = nt.elv_id;
ORDER BY el.elv_nom, el.elv_prenom, nt.nts_date
La question n'est pas particulièrement claire et évidente : est-ce que ces suggestions apportent un peu de lumière à ton problème ?
Merci bcp Cyrano tu me donne une bonne présentation surtout sur l'organisation de mon db projet .... et sur la jointure c'est jolie de ta part vraiment ...
si vous pouvez me donner le code php pour cette application :
--> affiche la liste des élèves et un form a chaque eleve
--> je donne a vous une image pour bien comprendre mon question.
Merci autre fois CYRANO
Salut,
si vous pouvez me donner le code php pour cette application
Faudrait pas trop rêver quand même : je peux t'aider à déboguer ton code, mais c'est à toi de l'écrire. Personne ne fera le code à ta place. Ici, c'est ApprendrePHP, donc si tu veux apprendre, je pourrai t'assister, mais rien de plus, je n'ai pas le temps.
J'ajoute également que pour concevoir ce code, il faudrait disposer de tous les éléments, donc l'architecture du projet et les règles fonctionnelles. Une image ne suffira pas.
salut :)
j’envoie mon code dans le min. délai MERCI CYRANO pour ton aide