111 lines
3.4 KiB
PHP
Executable File
111 lines
3.4 KiB
PHP
Executable File
<?php require_once __ROOT__.'/manager/security.php';
|
|
|
|
/**************************************************************************************/
|
|
/* ____ _____ __ __ _____ ____ _____ ____ _____ ____ _____ ____ ___ */
|
|
/* / ___|| ____| \/ | ____/ ___|_ _| _ \| ____| | _ \| ____| _ \ / _ \ */
|
|
/* \___ \| _| | |\/| | _| \___ \ | | | |_) | _| | |_) | _| | |_) | | | | */
|
|
/* ___) | |___| | | | |___ ___) || | | _ <| |___ | _ <| |___| __/| |_| | */
|
|
/* |____/|_____|_| |_|_____|____/ |_| |_| \_\_____| |_| \_\_____|_| \___/ */
|
|
/* */
|
|
/**************************************************************************************/
|
|
|
|
class semestreRepo extends DBAccess{
|
|
/* VERIFIE L'EXISTENCE D'UN GROUPE DANS LA BDD
|
|
*
|
|
* @rang<int> le rang du semestre dans le parcours (1<=>S1, 2<=>S2, ..)
|
|
* @annee<int> l'année du début du parcours
|
|
*
|
|
*
|
|
* @return UID<int> si le semestre est dans la BDD, retourne son UID (auto_incr)
|
|
* @return FALSE<Boolean> 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<int> l'UID du semestre duquel on veut les infos
|
|
*
|
|
* @return semestre<Array> 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<String> l'identifiant (UID) de l'étudiant à ajouter au groupe
|
|
*
|
|
* @return etudie<Boolean> FALSE si l'étudiant n'est dans aucun semestre en cours
|
|
* @return semestreUID<int> l'UID du semestre courant
|
|
*
|
|
*/
|
|
public static function forStudent($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'];
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} |