le nom du groupe recherché * * @return UID si le groupe est dans la BDD, retourne son UID (auto_incr) * @return FALSE FAUX si aucun groupe avec ce nom n'est pas présent dans la BDD * */ public static function UID($nom){ $db = DataBase::getInstance(); /*** on cherche un groupe avec ce nom ***/ $getGroupeUID = $db->pdo->prepare("SELECT id_groupe as id FROM groupe WHERE nom = :nom"); $getGroupeUID->execute(array( ':nom' => $nom )); // on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID du groupe return $getGroupeUID->fetch()['id']; } /* VERIFIE L'EXISTENCE D'UNE APPARTENANCE DANS LA BDD * * @etudiant l'identifiant (UID) de l'étudiant à ajouter au groupe * @groupe le nom du groupe auquel on veut le ratacher * @semestre l'UID du semestre pour lequel il sera membre * * @return UID si l'appartenance est dans la BDD, retourne son UID (auto_incr) * @return FALSE FAUX si aucune appartenance pour cet étudiant à ce groupe pour ce semestre n'est pas présent dans la BDD * */ public static function appartenanceUID($etudiant, $groupe, $semestre){ $db = DataBase::getInstance(); /*** on cherche un groupe avec ce nom ***/ $getAppartenanceUID = $db->pdo->prepare("SELECT id_appartenance as id ". "FROM appartenance ". "WHERE id_etudiant = :etudiant ". "AND id_groupe = :groupe ". "AND id_semestre = :semestre"); $getAppartenanceUID->execute(array( ':etudiant' => $etudiant, ':groupe' => $groupe, ':semestre' => $semestre )); // on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID du groupe return $getAppartenanceUID->fetch()['id']; } /* CREER UN GROUPE AVEC CE NOM * * @nom le nom du groupe à créer * * @return UID l'UID du groupe maintenant créé * @return created FAUX si le groupe existait déjà ou qu'il n' pasa bien été créé * */ public static function creer($nom){ $db = DataBase::getInstance(); /* [1] On vérifie l'existence d'un groupe avec ce nom ======================================================*/ if( $this->UID($nom) ) // si le groupe existe déjà return false; // on retourne FAUX /* [2] On créé le groupe =========================*/ $nom = strtoupper($nom); // on met le nom en majuscules // on créé et envoie la requête de création du groupe $creerGroupe = $db->pdo->prepare("INSERT INTO groupe(id_groupe, nom) VALUES(default, :nom)"); $creerGroupe->execute(array( ':nom' => $nom )); /* [3] On vérifie si le groupe a bien été créé ===============================================*/ return $this->UID($nom); } /* AJOUTER UN MEMBRE A UN GROUPE * * @etudiant l'identifiant (UID) de l'étudiant à ajouter au groupe * @groupe l'UID du groupe auquel on veut le ratacher * @semestre l'UID du semestre pour lequel il sera membre * * @UID l'UID de l'appartenance si l'utilisateur a été ajouté au groupe pour ce semestre * @member FAUX si l'utilisateur n'a pas été créé pour une quelconque erreur * */ public static function ajouterMembre($etudiant, $groupe, $semestre){ $db = DataBase::getInstance(); /* [1] On vérifie si l'utilisateur appartient à un groupe pour ce semestre ===========================================================================*/ $dejaMembre = $db->pdo->prepare("SELECT id_appartenance as id ". "FROM appartenance ". "WHERE id_etudiant = :etudiant ". "AND id_semestre = :semestre "); $dejaMembre->execute(array( ':etudiant' => $etudiant, ':semestre' => $semestre )); if( $appartenanceUID = $dejaMembre->fetch()['id'] ){ // si c'est le cas /* [2] On modifie l'appartenance ==============================*/ // création et exécution de la requête de modification de l'appartenance $ajouterMembres = $db->pdo->prepare("UPDATE appartenance ". "SET id_groupe = :groupe ". "WHERE id_appartenance = :appartenanceUID"); $ajouterMembre->execute(array( ':groupe' => $groupeUID, ':appartenanceUID' => $appartenanceUID )); }else{ // si l'utilisateur n'a pas de groupe pour ce semestre /* [2] On créé l'appartenance ==============================*/ // création et exécution de la requête de création d'appartenance $ajouterMembres = $db->pdo->prepare("INSERT INTO appartenance(id_etudiant, id_groupe, id_semestre) ". "VALUES( ". "(SELECT identifiant FROM utilisateur WHERE identifiant = :etudiant), ". "(SELECT id_groupe FROM groupe WHERE id_groupe = :groupe), ". "(SELECT id_semestre FROM semestre WHERE id_semestre = :semestre) ". " )"); $ajouterMembre->execute(array( ':etudiant' => $etudiantUID, ':groupe' => $groupeUID, ':semestre' => $semestre )); } /* [3] On vérifie que l'appartenance est bien définie ======================================================*/ return $this->appartenanceUID($etudiant, $groupe, $semestre); } }