diff --git a/app/controller/PartieController.php b/app/controller/PartieController.php index bb22262b5186d878371cddb9e1d752a19730e57b..b4f0d74a78aedf2ec5609cc42748173435568591 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 46e5b23390ad510a0f2fa467fbb4b6c263e74567..8f657f08f64567055d54495a7ada1751c0594320 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 003512a32785fdc1ecb442ce5a613941541bcd7c..be577c29aa3f028266263943815c87206c9f1984 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 0000000000000000000000000000000000000000..15310c807d09c81d80be1cd771800933a67f8b56 --- /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 0000000000000000000000000000000000000000..566549bdf8fae810809c1a81066000687cb338f6 --- /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