From 92dc3aa4d365e8343262dd35d3afaae702b6e314 Mon Sep 17 00:00:00 2001 From: Clecle Date: Mon, 26 Oct 2015 07:30:05 +0100 Subject: [PATCH] correction gestion arguments deplacerEtudiant() --- manager/database.php | 44 +++++++++++++++++++++++++++++++++++++++----- manager/groups.php | 13 ++++++++++++- 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/manager/database.php b/manager/database.php index 1cbbb08..7519dee 100755 --- a/manager/database.php +++ b/manager/database.php @@ -241,7 +241,7 @@ class DataBase{ /***** déplace un étudiant d'un groupe à un autre *****/ /******************************************************/ - public function deplacerEtudiant($nomEtudiant,$nouveauGroupe) { + public function deplacerEtudiant($etudiant,$groupe) { // !!! Réfléchir à la gestion des AS, LP etc.. @@ -262,10 +262,44 @@ class DataBase{ // [3] ensuite tu peux écrire manager/database.php en vérifiant tout les cas (ceux que j'ai cité ou oublié) // // Inspire toi de ce qui a déjà été fait au dessus et essaie de - if(isset($nouveauGroupe) && is_string($nouveauGroupe) && $nouveauGroupe == 'A' || 'B' || 'C' || 'D' || 'E' || 'F') - return 'L\'étudiant a été déplacé'; - else - return 'L\'étudiant n\'a pas pu être déplacé'; + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Vérification de l'existance de l'étudiant + + $getEtudiant = $this->pdo->query("SELECT `count(*)` FROM `etudiant` WHERE `nom` = :etudiant"); + + if($getEtudiant != 1) {return 'unknown_user'}; + + // Vérification du groupe + + $getGroupe = $this->pdo->query("SELECT `count(*)` FROM `groupes` ORDER BY `:groupe`"); + + if($getGroupe != 1) {return 'unknown_group'}; + + // Si l'étudiant n'appartient à aucun groupe + + $getGroupeEtudiant = getGroupeEtudiant($etudiant); + + if($getGroupeEtudiant) { + + $this->pdo->query("UPDATE `etudiant` SET `groupe` = `:groupe` WHERE `etudiant` == `:etudiant`"); + } + else { + + $this->pdo->query("INSERT INTO `etudiant`(`groupe`) VALUES (`:groupe`) WHERE `etudiant` == `:etudiant`"); + } + + if(getGroupeEtudiant($etudiant) == $groupe) { + + return 'success'; + } + else { + + return 'error'; + } + } } diff --git a/manager/groups.php b/manager/groups.php index 06cd5cd..2ac7054 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -120,9 +120,20 @@ require_once __ROOT__.'/manager/database.php'; $answer->answer = 'error'; break; + /******************************************************/ + /***** déplace un étudiant d'un groupe à un autre *****/ + /******************************************************/ + case 'move': + $areSetParam = isset($request->groupe) && isset($request->etudiant); // Les arguments existent + $typeOkParam = $areSetParam && is_string($request->groupe) && is_string($request->etudiant); // Les argument sont du bon type + $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && strlen($request->groupe); // Vérification de la taille + $utilisateurCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // Etudiant au bon format + $groupeCheck = $utilisateurCheck && preg_match('/^[a-z -]{1,50}$/i', $request->groupe); // Groupe au bon format - + $reponseDb = deplacerEtudiant($etudiant,$groupe); // Réponse de la base de donnée + $reponseDb != 'error' ? $answer->$reponseDb = 'success' : $answer->$reponseDb = 'error' ; // On retourne en fonction de la réponse de la DB + break; /***********/ /* DEFAULT */