l'identifiant de l'étudiant recherché * @controle l'UID du contrôle * * @return UID si l'utilisateur est dans la BDD, retourne son UID * @return FALSE FAUX si l'utilisateur n'est pas présent dans la BDD * */ public static function UID($identifiant, $semestre=null, $annee=null){ if( $semestre == null && $annee == null ){ // on cherche un utilisateur avec cet identifiant /* [1] Cas où on cherche juste si l'utilisateur existe =============================================================*/ $getUtilisateurUID = DataBase::getPDO()->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :identifiant"); $getUtilisateurUID->execute(array( ':identifiant' => $identifiant )); }elseif( $semestre != null ){ /* [2] Cas où on cherche si un étudiant est inscrit à un semestre ==============================================================*/ $getUtilisateurUID = DataBase::getPDO()->prepare("SELECT u.identifiant as id ". "FROM utilisateur as u, appartenance as app ". "WHERE u.identifiant = app.id_etudiant ". "AND u.identifiant = :identifiant ". "AND app.id_semestre = :semestre"); $getUtilisateurUID->execute(array( ':identifiant' => $identifiant, ':semestre' => $semestre )); }else{ /* [2] Cas où on cherche si un enseignant enseigne l'année donnée ==============================================================*/ $getUtilisateurUID = DataBase::getPDO()->prepare("SELECT DISTINCT u.identifiant as id ". "FROM utilisateur as u, enseignement as ens, semestre as s, mcc_module as mcc_m, mcc_ue ". "WHERE u.identifiant = ens.id_enseignant ". "AND ens.id_mcc_module = mcc_m.id_mcc_module ". "AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ". "AND mcc_ue.id_semestre = s.id_semestre ". "AND s.annee = :annee ". "AND u.identifiant = :identifiant"); $getUtilisateurUID->execute(array( ':identifiant' => $identifiant, ':annee' => $annee )); } // on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID de l'utilisateur return $getUtilisateurUID->fetch()['id']; } /* RENVOIE LES INFORMATIONS D'UN UTILISATEUR D'UID DONNÉ * * @utilisateurUID l'UID de l'utilisateur duquel on veut les infos * * @return utilisateur tableau associatif contenant tout les champs de la BDD pour cet utilisateur * */ public static function info($utilisateurUID){ // on considère que le semestre existe $getUtilisateurInfo = DataBase::getPDO()->prepare("SELECT identifiant, prenom, nom, mail, droits FROM utilisateur WHERE identifiant = :utilisateurUID"); $getUtilisateurInfo->execute(array( ':utilisateurUID' => $utilisateurUID )); // on retourne le résultat en supprimant les doublons à indices numériques return $getUtilisateurInfo->fetch(); } /* RENVOIE LES NOTES D'UN ETUDIANT POUR UN CONTROLE PARTICULIER * * @etudiant l'UID de l'étudiant concerné * @controle l'UID du controle concerné * * @return notes retourne les notes d'un étudiant pour un controle particulier * */ public static function forStudent($etudiant, $controle){ $getNoteList = DataBase::getPDO()->prepare("SELECT DISTINCT n.id_note as id, n.id_appartenance, n.id_controle, n.valeur ". "FROM note as n, appartenance as app, semestre as s, controle as ctrl, mcc_ue, mcc_module as mcc_m ". "WHERE n.id_appartenance = app.id_appartenance ". "AND app.id_semestre = s.id_semestre ". "AND s.id_semestre = mcc_ue.id_semestre ". "AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ". "AND mcc_m.id_mcc_module = ctrl.id_mcc_module ". "AND n.id_controle = ctrl.id_controle ". "AND app.id_etudiant = :etudiant ". "AND ctrl.id_controle = :controle ". "ORDER BY n.valeur ASC"); $getNoteList->execute(array( ':etudiant' => $etudiant, ':controle' => $controle )); return DataBase::delNumeric( $getNoteList->fetchAll() ); } /* RENVOIE LES NOTES DES ETUDIANTS POUR UN CONTROLE PARTICULIER * * @controle l'UID du controle concerné * * @return notes retourne les notes des étudiants pour un controle particulier * */ public static function forTeacher($controle){ $getNoteList = DataBase::getPDO()->prepare("SELECT DISTINCT app.id_etudiant as etudiant, n.id_note as id, n.id_appartenance, n.id_controle, n.valeur ". "FROM note as n, appartenance as app, semestre as s, controle as ctrl, mcc_ue, mcc_module as mcc_m ". "WHERE n.id_appartenance = app.id_appartenance ". "AND app.id_semestre = s.id_semestre ". "AND s.id_semestre = mcc_ue.id_semestre ". "AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ". "AND mcc_m.id_mcc_module = ctrl.id_mcc_module ". "AND n.id_controle = ctrl.id_controle ". "AND ctrl.id_controle = :controle ". "ORDER BY app.id_etudiant, n.valeur ASC"); $getNoteList->execute(array( ':controle' => $controle )); return DataBase::delNumeric( $getNoteList->fetchAll() ); } }