IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

gestion de notes des élèves par classe en procédural


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 53
    Points : 46
    Points
    46
    Par défaut gestion de notes des élèves par classe en procédural
    Bonjour,
    c'est rare que je vienne demander de l'aide, je pense que je ne l'ai pas encore fait sur ce forum. Avant je cherchais partout mais j'arrivais à chaque à trouver une solution. Mais là cela devient une casse tête.

    Nous sommes entrain de concevoir une plateforme de gestion d'école. Mais nous avons un problème concernant la gestion des notes des élèves.

    J'explique la situation:
    -Nous codons plutot en PHP4 même si parfois on utilise de l'orientée objet. Nous utilisons MySql pour la base de donnée et Pdo pour la connexion.
    -Voici les infos sur la base de donnée:

    Nous avons 5 tables pour la gestion des notes:
    • =>la table "evaluation" où on enregistre les avaluations avec comme champs (id_eval,..., id_prof, id_matiere ,id_classe)
    • =>la table "note" où il y'a les champs (id_note, devoir1, devoir2, compo, semestre, id_eleve, id_eval)
    • =>la table "classe" où il y'a les champs (id_classe, nom_classe, id_ecole)
    • =>la table "eleve" où il y'a les champs (id_eleve,...,id_user,...)
    • =>la table "professeur" où il y'a les champs (id_ens, nom_ens,...,id_user,...)

    Mais dans notre cas ci seules les tables évaluations et note seront afféctés.

    Bref ce que nous voulons c'est que lorsqu'un professeur veut enregistrer des notes pour les élèves, qu'il crée d'abord une évaluation. On enregistre en premier lieu l'évaluation dans la table évaluation. Pour ça pas de probléme.

    Mais là où ça bloque c'est après avoir creer l'évaluation, le prof doit pouvoir enregistrer les notes des élèves. Et pour cela dès qu'il crée une évaluation, on lui liste les évaluations et lorsqu'il clique sur une évaluation, on récupère l'id de l'évaluation et on doit lui lister un formulaire où il y'a la liste de tous les élèves de la classe concerné par cette évaluation. Et lorsqu'il remplira les champs et qu'il clique sur envoyer, que l'on puisse envoyer les notes saisi se trouvant dans le formulaire dans la table "note".

    • -Si dans la classe il y'a 10 éléves, on doit pouvoir lui lister 10 lignes avec (nom_eleve, prenom_eleve, devoir1, devoir2, compo) et envoyer les informations rempli
    • -Si dans la classe il y'a 15 éléves, on doit pouvoir lui lister 15 lignes...
    • -Si dans la classe il y'a 30 éléves, on doit pouvoir lui lister 30 lignes..
    • ...


    J'éspère que je n'ai pas été très longs dans les explications mais j'éspère aussi que cela aidera pleins de monde, car j'ai cherché partout sans trouver de solution!

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Arrêtez tout : PHP 4 !!! Fin du support en 2008 ! 8 ans déjà !
    Il faut partir sur une version plus récente du langage, voire carrément la dernière pour la pérennité dans la temps.

    La conception est bancale, la table note ne devrait pas lister des colonnes du genre : devoir1, devoir2
    comment veux tu faire si tu as un devoir n°6 ? tu vas insérer des colonnes jusqu'à atteindre le nombre souhaité ? ...

    Ensuite, je n'ai pas trop compris l'histoire de l'évaluation. Ta table a les colonnes : id_eval,..., id_prof, id_matiere, id_classe, et ensuite tu affectes id_eval à la table note.
    Si l'évaluation est rattachée comme tu sembles le dire à la classe pour une matière, pourquoi la rattacher à un élève ?
    Un élève est déjà rattaché à une classe donc le lien tu l'as automatiquement, non ?

    Explique plus clairement ton concept d'évaluation stp avec un ou deux exemples concret.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par 2boubacar10 Voir le message
    Nous codons plutot en PHP4 même si parfois on utilise de l'orientée objet. Nous utilisons MySql pour la base de donnée et Pdo pour la connexion.
    Citation Envoyé par rawsrc Voir le message
    Arrêtez tout : PHP 4 !!! Fin du support en 2008 ! 8 ans déjà !
    Du calme ! Etant donné que PDO n'existe que depuis PHP 5.1, je pense qu'il faut traduire "coder en PHP4" par "coder en procédural".
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 53
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Salut,

    Arrêtez tout : PHP 4 !!! Fin du support en 2008 ! 8 ans déjà !
    Il faut partir sur une version plus récente du langage, voire carrément la dernière pour la pérennité dans la temps.
    Je pense que Celira a répondu.

    Citation Envoyé par rawsrc Voir le message
    Salut,
    La conception est bancale, la table note ne devrait pas lister des colonnes du genre : devoir1, devoir2
    comment veux tu faire si tu as un devoir n°6 ? tu vas insérer des colonnes jusqu'à atteindre le nombre souhaité ? ...
    On ne peut avoir de devoir n°6 vu que nous avons limité le nombre de devoirs à deux, ensuite il y'a la composition. Les ecoles pour lesquelles on conçoit cette plateforme fonctionnent de cette manière là.

    Citation Envoyé par rawsrc Voir le message
    Salut,
    Ensuite, je n'ai pas trop compris l'histoire de l'évaluation. Ta table a les colonnes : id_eval,..., id_prof, id_matiere, id_classe, et ensuite tu affectes id_eval à la table note.
    Si l'évaluation est rattachée comme tu sembles le dire à la classe pour une matière, pourquoi la rattacher à un élève ?
    Un élève est déjà rattaché à une classe donc le lien tu l'as automatiquement, non ?
    1- Non un élève n'est pas directement rattaché à une classe parce que le même élève l'année suivante sera normalement dans une autre classe. C'est pourquoi on a la table "inscription" qui permet d'enregistrer une élève dans une classe pour une année donée (ex: l'année en cours)

    2- On rattache id_eval à la table note, car chaque note concerne une évaluation bien précise. Une évaluation concerne une classe et une matière

    Exemple:
    On peut vouloir créer une evaluation en Maths
    -On crée l'évaluation pour une classe et une date bien précise (on peut avoir deux évaluations de maths pour deux classes différentes)
    -On enregistre les notes dans la table note qui a comme clef etrangère id_evaluation

    Et si on veut afficher les notes dans la base donée peut faire
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT id_ele, prenom_ele, nom_ele, devoir1, devoir2, compo, id_note, id_prof, evaluation.id_prof, nom_classe, date_ins AS 'date inscription'
    FROM inscription
    INNER JOIN note ON inscription.fk_id_ele = note.id_eleve
    INNER JOIN eleve ON eleve.id_ele = inscription.fk_id_ele
    INNER JOIN evaluation ON note.id_eval = evaluation.id_eval
    INNER JOIN classe ON evaluation.id_classe = classe.id_classe


    Nom : Sans titre 2.png
Affichages : 2453
Taille : 16,8 Ko

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ok, c'est plus clair.

    ton souci vient du fait que pour lister les élèves concernés par une évaluation, tu dois rapprocher la table "evaluation" (id_eval,..., id_prof, id_matiere ,id_classe) de la table inscription qui fait le lien entre classe et élève.
    Ce que tu peux faire, c'est de te servir de la date de l'évaluation comme glu.
    Comme te me l'as expliqué, les inscriptions sont gérées par années scolaire donc entre deux dates. Une évaluation a une date aussi donc tu peux sortir la liste des élèves concernés par l'évaluation en sélectionnant ceux inscrits dans la classe à la date de l'évaluation.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 53
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Ok, c'est plus clair.

    ton souci vient du fait que pour lister les élèves concernés par une évaluation, tu dois rapprocher la table "evaluation" (id_eval,..., id_prof, id_matiere ,id_classe) de la table inscription qui fait le lien entre classe et élève.
    Ce que tu peux faire, c'est de te servir de la date de l'évaluation comme glu.
    Je n'ai pas compris la dérnière phrase.

    -Sinon mon principal soucis réside dans le faite que lorsqu'on crée une évaluation pour une classe, lorsqu'on veut rentrer les notes rien n'existe encore dans la base de donnée pour cette évaluation.
    -Donc on peut pas lister les notes de l'avaluation crée vu qu'elles n'existent pas encore.

    J'ai deux solutions:
    -Soit de crée un tableau et compter le nombre d'inscris dans la classe concernant cette evaluation et lister un formulaire vide à remplir avec un nombre de ligne = au nombre d'élèves. Mais ici mon soucis c'est le traitement du tableau pour l'envoi des données dans la base donnée (vérification des "input" s'ils sont rempli d'abord, "name" de ces "input") là j'aurai autant de ligne avec 3 "input" pour chaque élèves avec cette méthode. C'est faisable mais fastidieux.

    -Soit lors de la création de l'évaluation, je mets 0 partout pour les élèves de la classe concernèe. Ainsi lorsqu'on clique sur l'évaluation par la suite, on liste les notes depuis la base de donée. On aura partout 0 pour tous les élèves. Et ainsi on aura des lignes modifiables ( on peut utiliser plusieurs façons: envoi et traitement via url $_GET, ou avec javascript en utilisant des scripts du genre fancybox ou x-editable avec bootstrap).

    Pour ma part j'ai utilisé la 2e méthode avec x-editable comme j'utilise bootstrap pour le design.
    Nom : note.png
Affichages : 2173
Taille : 8,5 Ko

    Et ça marche!
    Merci pour ton aide rawsrc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Gestion des élèves par Annèe scolaire
    Par ellodidier dans le forum WinDev
    Réponses: 2
    Dernier message: 22/10/2012, 17h52
  2. Afficher une liste d'élèves par classe.
    Par brahda dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2011, 09h55
  3. [Turbo Pascal] [Débutant] Gestion des notes des élèves d'une classe
    Par bigamine5 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/02/2009, 11h26
  4. gestion de notes, trimestres, élèves.
    Par ludolan dans le forum Access
    Réponses: 6
    Dernier message: 12/09/2006, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo