le rang du semestre dans le parcours (1<=>S1, 2<=>S2, ..) * @annee l'année du début du parcours * * * @return UID si le semestre est dans la BDD, retourne son UID (auto_incr) * @return FALSE FAUX si aucun semestre avec ce rang et annee n'est pas présent dans la BDD * */ public static function UID($rang, $annee){ // si les 2 ne sont pas des nombres (même dans une string) if( !is_numeric($rang) || !is_numeric($annee) ) return false; // aucun résultat possible /*** on cherche un semestre avec ce rang et cette année (qui est forcément unique) ***/ $getSemestreUID = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee"); $getSemestreUID->execute(array( ':rang' => $rang, ':annee' => $annee )); // on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID du semestre return $getSemestreUID->fetch()['id']; } /* RENVOIE LES INFORMATIONS D'UN SEMESTRE D'UID DONNÉ * * @semestreUID l'UID du semestre duquel on veut les infos * * @return semestre tableau associatif contenant tout les champs de la BDD pour ce semestre * */ public static function info($semestreUID){ // on considère que le semestre existe $getSemestreInfo = DataBase::getPDO()->prepare("SELECT id_semestre as id, nom, rang, annee FROM semestre WHERE id_semestre = :semestreUID"); $getSemestreInfo->execute(array( ':semestreUID' => $semestreUID )); // on retourne le résultat en supprimant les doublons à indices numériques return $getSemestreInfo->fetch(); } /* retourne le semestre courant d'un étudiant * * @etudiant l'identifiant (UID) de l'étudiant à ajouter au groupe * * @return etudie FALSE si l'étudiant n'est dans aucun semestre en cours * @return semestreUID l'UID du semestre courant * */ public static function studentCurrent($etudiant, $semestre_pair, $annee){ // on formate les variables $semestre_pair = ($semestre_pair) ? '0' : '1'; $getSemestreUID = DataBase::getPDO()->prepare("SELECT s.id_semestre as id ". "FROM semestre as s, appartenance as app ". "WHERE app.id_semestre = s.id_semestre ". "AND app.id_etudiant = :etudiant ". "AND s.annee = :annee ". "AND s.rang % 2 = :semestre_pair ". "ORDER BY s.rang DESC"); $getSemestreUID->execute(array( ':etudiant' => $etudiant, ':annee' => $annee, ':semestre_pair' => $semestre_pair )); // on retourne l'UID du semestre courant return $getSemestreUID->fetch()['id']; } }