From d0cac2e80585ac3d301d01e18d99bad737c44726 Mon Sep 17 00:00:00 2001 From: Eliah REBSTOCK <eliah.rebstock@ensiie.fr> Date: Mon, 25 Apr 2016 21:36:50 +0200 Subject: [PATCH] suite Classe Partie --- app/controller/PartieController.php | 9 ++++++++ app/kernel/Router.php | 15 ++++++++++++- app/model/Partie.php | 14 +++++++----- app/view/partie/displayForm.html | 34 +++++++++++++++++++++++++++++ app/view/partie/displayValid.html | 10 +++++++++ 5 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 app/view/partie/displayForm.html create mode 100644 app/view/partie/displayValid.html diff --git a/app/controller/PartieController.php b/app/controller/PartieController.php index bb22262..b4f0d74 100644 --- a/app/controller/PartieController.php +++ b/app/controller/PartieController.php @@ -8,5 +8,14 @@ */ class PartieController extends Controller { + public function displayForm(){ + $this->view->liste = Jeu::getList(); + $this->view->listej = Profil::getList(); + $this->view->display(); + } + + public function displayValid(){ + $this->view->display(); + } } \ No newline at end of file diff --git a/app/kernel/Router.php b/app/kernel/Router.php index 46e5b23..8f657f0 100644 --- a/app/kernel/Router.php +++ b/app/kernel/Router.php @@ -88,7 +88,20 @@ class Router { // classe PHP permettant l'analyse de l'URL des requêtes $result["controller"] = "Register"; $result["action"] = "verify"; // "verify" pour appeler la méthode de vérification } - + + /*** Ajout de partie ***/ + else if($parts[0] == "add_partie" && count($parts) == 1){ // formulaire d'ajout de partie + $result["controller"] = "Partie"; + $result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire + } + else if($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "valid"){ // Page d'ajout réussie + $result["controller"] = "Partie"; + $result["action"] = "displayValid"; // "displayForm" pour afficher le formulaire + } + else if($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verify"){ // Page d'ajout réussie + $result["controller"] = "Partie"; + $result["action"] = "verify"; // "displayForm" pour afficher le formulaire + } // à chaque fois qu'on crée une nouvelle page, il faut rajouter un cas à cet endroit ! diff --git a/app/model/Partie.php b/app/model/Partie.php index 003512a..be577c2 100644 --- a/app/model/Partie.php +++ b/app/model/Partie.php @@ -27,17 +27,17 @@ class Partie extends Model return $stmt->fetchAll(); } - public static function checkExists($slug_partie) { // méthode permettant de vérifier si un jeu existe dans la BDD + public static function checkExists($slug_partie) { // méthode permettant de vérifier si une partie existe dans la BDD $db = Database::getInstance(); // on récupère la connexion à la BDD $sql = "SELECT * FROM R_partie WHERE slug = :slug"; $req = $db->prepare($sql); // on prépare la requête $req->execute(array(":slug" => $slug_partie)); // on remplace les variables dans la requête if ($result = $req->fetch()) { // on récupère l'enregistrement, s'il existe - return 1; + return true; } - return 0; // on aurait pu mettre deux return (un dans le if et un ici), mais bon... + return false; // on aurait pu mettre deux return (un dans le if et un ici), mais bon... } private static function calcul_classement($R){ @@ -60,7 +60,7 @@ class Partie extends Model $sql3 = "SELECT score FROM R_joueur_jeu WHERE joueur = :id_joueur AND jeu = :id_jeu;"; $sql4 = "INSERT INTO R_joueur_partie (partie, joueur, classement, score) VALUES ((:id_jeu, :date), :id_joueur, :classement, :score);"; - $sql5 = "UPDATE INTO R_joueur_jeu (score) VALUES (:new_score);"; + $sql5 = "UPDATE R_joueur_jeu SET score = :new_score WHERE joueur = :id_joueur AND jeu = :id_jeu;"; $stmt0 = $db->prepare($sql0); $stmt1 = $db->prepare($sql1); $stmt2 = $db->prepare($sql2); @@ -71,6 +71,9 @@ class Partie extends Model if($stmt0->execute(array(":nom_jeu" => $nom_jeu))) { if($row = $stmt0->fetch()) { $id_jeu = $row[0]; + if(!Jeu::checkExists($id_jeu)) + throw new UnexpectedValueException; + if($stmt1->execute(array(":id_jeu" => $id_jeu, ":date" => $date))) { $m = count($joueurs); @@ -87,7 +90,8 @@ class Partie extends Model if($stmt4->execute(array(":id_jeu" => $id_jeu, ":date" => $date, ":id_joueur" => $id_joueur, ":classement" => $classement, ":score" => $old_score))){ - if($stmt5->execute(array(":new_score"=> $old_score + $diff_scores[$j]))) + if($stmt5->execute(array(":new_score"=> $old_score + $diff_scores[$j], + ":id_jeu" => $id_jeu,":id_joueur" => $id_joueur ))) { //C'est dans la boite } diff --git a/app/view/partie/displayForm.html b/app/view/partie/displayForm.html new file mode 100644 index 0000000..15310c8 --- /dev/null +++ b/app/view/partie/displayForm.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html lang="fr"> +<head> + <meta charset="UTF-8"> + <title>Formulaire d'ajout de partie</title> +</head> +<body> +<header> + <h1>Formulaire d'ajout de partie</h1> +</header> + +<form method="post" action="add_partie/verify"> + <label for="jeu">Jeu : </label> + <select name="jeu" id="jeu"> + <?php foreach($this->liste as $jeu){ ?> + <option><?php echo $jeu->nom; ?></option> + <?php } ?> + </select> + <label for="joueurs">Joueurs :</label> + <select name="joueurs" id="joueurs" multiple="multiple" size="5"> + <?php foreach($this->listej as $joueur){ ?> + <option><?php echo $joueur->nom; ?></option> + <?php } ?> + </select> + <br/> + <label for="scores">Scores :</label><input type="text" name="scores" id="scores" /><br/> + <input type="submit" value="Ajouter" /> +</form> + +<footer> + <p>Le pied de page</p> +</footer> +</body> +</html> \ No newline at end of file diff --git a/app/view/partie/displayValid.html b/app/view/partie/displayValid.html new file mode 100644 index 0000000..566549b --- /dev/null +++ b/app/view/partie/displayValid.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Title</title> +</head> +<body> + +</body> +</html> \ No newline at end of file -- GitLab