diff --git a/app/controller/PartieController.php b/app/controller/PartieController.php index 2955880a2248c30581e5207dc487d73ed8501996..61a4ba76ab3dcaecb22e1dc79d0b79741399c711 100644 --- a/app/controller/PartieController.php +++ b/app/controller/PartieController.php @@ -8,34 +8,346 @@ */ class PartieController extends Controller { - public function displayForm(){ + public function displayStep0(){ $this->view->liste = Jeu::getList(); + $this->view->display(); + } + + public function displayStep1(){ + session_start(); + if(!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + + $this->view->jeuactuel = $_SESSION['jeu_select']; $this->view->listej = Profil::getList(); $this->view->display(); } + + public function displayStep2(){ + session_start(); + if(!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + if(!isset($_SESSION['joueurs_select'])) + header("Location:../add_partie/step1"); + + + $this->view->jeuactuel = $_SESSION['jeu_select']; + $this->view->listejactuel = $_SESSION['joueurs_select']; + $this->view->display(); + } + + public function displayStepe1(){ + session_start(); + if(!isset($_SESSION['jeu_select']) || !isset($_SESSION['equipes'])) + header("Location:../add_partie"); + + $this->view->jeuactuel = $_SESSION['jeu_select']; + $this->view->listej = Profil::getList(); + $this->view->equipes = $_SESSION['equipes']; + $this->view->display(); + } + + public function displayStepe2(){ + session_start(); + if(!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + if(!isset($_SESSION['equipes'])) + header("Location:../add_partie/stepe1"); + + + $this->view->jeuactuel = $_SESSION['jeu_select']; + $this->view->equipes = $_SESSION['equipes']; + $this->view->display(); + } public function displayValid(){ $this->view->display(); } - public function verify(){ + public static function verifyStep0(){ - if(!isset($_POST['jeu']) || !isset($_POST['joueurs']) || !isset($_POST['scores'])) { + if(!isset($_POST['jeu'])) { //appeler une fonction d'erreur echo "<h1>Erreur : variables absentes</h1>"; die(); } - $data = $_POST; + $jeu = $_POST['jeu']; - $scores = explode(";", $data["scores"]); - print_r($scores); - if (count($scores) != count($data["joueurs"])){ - //appeler une fonction d'erreur - echo "<h1>Erreur : variables pb</h1>"; + if(!Jeu::checkExistsNom($jeu)) { + echo "<h1>Erreur : le jeu entré est introuvable dans la BD.</h1>"; die(); } - - Partie::addPartie($data['joueurs'], $scores, $data['jeu']); + + $jeu = Jeu::getFromNom($jeu); + session_start(); + $_SESSION['jeu_select'] = $jeu; + if($jeu->type == 'equipes'){ + $_SESSION['equipes'] = array(array()); + header('Location:stepe1'); + } + else + header('Location:step1'); } + public static function addjoueurs1(){ + session_start(); + if(!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + if(!isset($_POST["joueur"])){ + echo "<h1>Erreur : pas de joueur entré.</h1>"; + die(); + } + $jeu = $_SESSION['jeu_select']; + $joueur = $_POST["joueur"]; + + if(Profil::checkExists($joueur)){ + $joueur_objet = Profil::getFromSlug($joueur); + } + else{ + echo "<h1>Erreur : le joueur est introuvable dans la base de données.</h1>"; + die(); + } + + if($jeu->type == 'equipes'){ + $ke = $_POST['equipejadd']; + foreach ($_SESSION['equipes'] as $equipe){ + if(in_array($joueur_objet, $equipe)){ + echo "<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>"; + die(); + } + } + array_push($_SESSION['equipes'][$ke], $joueur_objet); + header("Location:stepe1"); + } + else{ + if (!isset($_SESSION['joueurs_select'])){ + $_SESSION['joueurs_select'] = array($joueur_objet); + echo "<h1>L'ajout s'est bien passé.</h1>"; + header("Location:step1"); + } + + if(!in_array($joueur_objet, $_SESSION['joueurs_select'])) + array_push($_SESSION['joueurs_select'], $joueur_objet); + else{ + echo "<h1>Erreur : le joueur a déjà été inscrit pour cette partie.</h1>"; + die(); + } + echo "<h1>L'ajout s'est bien passé.</h1>"; + header("Location:step1"); + } + } + + public static function deljoueurs1(){ + session_start(); + if(!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + + if($_SESSION['jeu_select']->type == 'duels') { + if (!isset($_SESSION['joueurs_select'])) + header("Location:step1"); + } + if($_SESSION['jeu_select']->type == 'equipes') { + if (!isset($_SESSION['equipes'])) + header("Location:stepe1"); + } + + if(!isset($_POST['joueurdel'])) + { + echo "<h1>Erreur : variables manquantes.</h1>"; + die(); + } + + if($_SESSION['jeu_select']->type == 'equipes'){ + unset($_SESSION['equipes'][$_POST['equipejdel']][$_POST['joueurdel']]); + $equipe_tmp = array(); + foreach ($_SESSION['equipes'][$_POST['equipejdel']] as $j) + array_push($equipe_tmp, $j); + $_SESSION['equipes'][$_POST['equipejdel']] = $equipe_tmp; + header("Location:stepe1"); + } + else{ + unset($_SESSION['joueurs_select'][$_POST['joueurdel']]); + $joueurs_tmp = array(); + foreach ($_SESSION['joueurs_select'] as $j) + array_push($joueurs_tmp, $j); + $_SESSION['joueurs_select'] = $joueurs_tmp; + header("Location:step1"); + } + } + public static function delequipe(){ + session_start(); + if (!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + if (!isset($_SESSION['equipes'])) + header("Location:stepe1"); + if (count($_SESSION['equipes']) <= 1){ + echo "<h1>Erreur : vous ne pouvez pas supprimer la seule équipe restante.</h1>"; + die(); + } + + if(!isset($_POST['equipe'])){ + echo "<h1>Erreur : variables manquantes.</h1>"; + die(); + } + + unset($_SESSION['equipes'][$_POST['equipe']]); + $equipe_tmp = array(); + foreach ($_SESSION['equipes'] as $e) + array_push($equipe_tmp, $e); + $_SESSION['equipes'] = $equipe_tmp; + header("Location:stepe1"); + } + + public static function addequipe(){ + session_start(); + if (!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + if (count($_SESSION['equipes']) == $_SESSION['jeu_select']->max_equipes){ + echo "<h1>Erreur : vous ne pouvez pas créer d'équipe supplémentaire.</h1>"; + die(); + } + + array_push($_SESSION['equipes'], array()); + header("Location:stepe1"); + } + + public static function verifyStep1(){ + session_start(); + if(!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + $jeu_actuel = $_SESSION['jeu_select']; + if ($jeu_actuel->type == 'equipes'){ + if(!isset($_SESSION['equipes'])) + header("Location:stepe1"); + $equipes = $_SESSION['equipes']; + if (count($equipes) < $jeu_actuel->min_equipes){ + echo "<h1>Erreur : il n'y a pas assez d'équipes.</h1>"; + die(); + } + if (count($equipes) > $jeu_actuel->max_equipes){ + echo "<h1>Erreur : il y a trop d'équipes.</h1>"; + die(); + } + + foreach ($equipes as $ke => $e){ + if (count($e) < $jeu_actuel->min_joueurs){ + $ke = $ke+1; + echo "<h1>Erreur : il n'y a pas assez de joueurs dans l'équipe $ke.</h1>"; + die(); + } + if (!is_null($jeu_actuel->max_joueurs)){ + if (count($e) > $jeu_actuel->max_joueurs){ + $ke = $ke+1; + echo "<h1>Erreur : il y a trop de joueurs dans l'équipe $ke.</h1>"; + die(); + } + } + } + + header("Location:stepe2"); + } + else{ + if(!isset($_SESSION['joueurs_select'])) + header("Location:step1"); + $joueurs = $_SESSION['joueurs_select']; + if (count($joueurs) < $jeu_actuel->min_joueurs){ + echo "<h1>Erreur : il n'y a pas assez de joueurs.</h1>"; + die(); + } + if (count($joueurs) > $jeu_actuel->max_joueurs){ + echo "<h1>Erreur : il y a trop de joueurs.</h1>"; + die(); + } + header('Location:step2'); + } + + + + } + + + public function verifyStep2(){ + session_start(); + if(!isset($_SESSION['jeu_select'])) + header("Location:../add_partie"); + + $jeu = $_SESSION['jeu_select']; + if ($jeu->type == 'equipes') { + if (!isset($_SESSION['equipes'])) + header("Location:stepe1"); + } + else{ + if(!isset($_SESSION['joueurs_select'])) + header("Location:../add_partie/step1"); + } + + if(!isset($_POST['scores'])) { + //appeler une fonction d'erreur + echo "<h1>Erreur : variables absentes</h1>"; + die(); + } + + + $scores = $_POST["scores"]; + foreach ($scores as $s){ + if(!is_numeric($s)) { + echo "<h1>Erreur : les scores doivent être des nombres.</h1>"; + die(); + } + } + if ($jeu->type == 'equipes') { + $equipes = $_SESSION['equipes']; + $ns = count($scores); + $nj = count($equipes); + if ($ns != $nj){ + //appeler une fonction d'erreur + echo "<h1>Erreur : scores et joueurs incohérents</h1>"; + die(); + } + + $pb = Partie::addPartie($equipes, $scores, $jeu); + if(!$pb) { + unset($_SESSION['equipes']); + unset($_SESSION['jeu_select']); + header('Location:valid'); // Redirection vers la page OK + } + switch ($pb) { + case 2: + echo "<h1>Erreur de connexion à la BD.</h1>"; + die(); + break; + default: + echo "<h1>Erreur non gérée.</h1>"; + die(); + break; + } + } + else{ + $joueurs = $_SESSION['joueurs_select']; + $ns = count($scores); + $nj = count($joueurs); + if ($ns != $nj){ + //appeler une fonction d'erreur + print_r($scores); + echo "<h1>Erreur : scores et joueurs incohérents</h1>"; + die(); + } + $pb = Partie::addPartie($joueurs, $scores, $jeu); + if(!$pb) { + unset($_SESSION['jeu_select']); + unset($_SESSION['joueurs_select']); + header('Location:valid'); // Redirection vers la page OK + } + switch ($pb) { + case 2: + echo "<h1>Erreur de connexion à la BD.</h1>"; + die(); + break; + default: + echo "<h1>Erreur non gérée.</h1>"; + die(); + break; + } + } + } } \ No newline at end of file diff --git a/app/kernel/Router.php b/app/kernel/Router.php index 334611bbc2b74ae3aa743d6776b2e15bd7d54217..2c85fab4b101877d73770dbd6f79c9fd9daafe15 100644 --- a/app/kernel/Router.php +++ b/app/kernel/Router.php @@ -1,13 +1,15 @@ <?php -class Router { // classe PHP permettant l'analyse de l'URL des requêtes - public static function analyze($query) { // méthode d'analyse de la requête - // on définit une variable, par défaut initialisée sur les paramètres de page d'erreur 404 (page non trouvée) - $result = array( - "controller" => "Error", // le nom du contrôleur à instancier - "action" => "error404", // le nom de l'action à effectuer, autrement dit de la méthode à appeler dans ce contrôleur - "params" => array() // les paramètres de la requête (dans un tableau), par défaut aucun - ); +class Router +{ // classe PHP permettant l'analyse de l'URL des requêtes + public static function analyze($query) + { // méthode d'analyse de la requête + // on définit une variable, par défaut initialisée sur les paramètres de page d'erreur 404 (page non trouvée) + $result = array( + "controller" => "Error", // le nom du contrôleur à instancier + "action" => "error404", // le nom de l'action à effectuer, autrement dit de la méthode à appeler dans ce contrôleur + "params" => array() // les paramètres de la requête (dans un tableau), par défaut aucun + ); if($query === "" || $query === "/") { // on regarde si la requête est identique (===) à la chaîne vide ou "/", et si oui, c'est qu'on voulait accéder à la page d'accueil $result["controller"] = "Index"; // le contrôleur est donc Index @@ -125,24 +127,114 @@ class Router { // classe PHP permettant l'analyse de l'URL des requêtes $result["action"] = "save"; // "save" pour appeler la méthode d'enregistrement dans la BDD } - /*** 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 + /*** consultation des jeux ***/ + if ($parts[0] == "jeu" && count($parts) == 2) { // on veut consulter la fiche d'un jeu (jeu/nomDuJeu) + $result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat + $result["action"] = "display"; // on veut afficher les informations d'un jeu, donc on donne l'action "display" + $result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL (normalement le nom/id du jeu), on le stocke aussi + } else if ($parts[0] == "listejeux") { // on veut consulter la liste des jeux (listejeux/, avec n'importe quoi derrière) + $result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat + $result["action"] = "displayListe"; // on veut afficher la liste des jeux, donc on donne l'action "displayListe" + // il n'y a pas de paramètres attendus, on n'affecte pas $result["params"] + } else if ($parts[0] == "addjeu" && count($parts) == 1) { // on veut afficher le formulaire d'ajout(url/addjeu) + $result["controller"] = "Jeu"; + $result["action"] = "displayFormAdd"; // on veut afficher le formulaire + // il n'y a pas de paramètres attendus, on n'affecte pas $result["params"] + } else if ($parts[0] == "addjeu" && count($parts) == 2 && $parts[1] == "addrequest") { // on veut enregistrer la demande d'ajout (addjeu/addrequest) + $result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat + $result["action"] = "addRequest"; // on veut ajouter le jeu à la BDD, donc on donne l'action "addRequest" + // il n'y a pas de paramètres attendus, on n'affecte pas $result["params"] + } else if ($parts[0] == "addjeu" && count($parts) == 2 && $parts[1] == "requestvalid") { // l'enregistrement de la demande a été effectué, on affiche un message de confirmation (addjeu/requestvalid) + $result["controller"] = "Jeu"; + $result["action"] = "displayRequestValid"; + // il n'y a pas de paramètres attendus, on n'affecte pas $result["params"] + } /*** consultation des profils ***/ + else if ($parts[0] == "profil" && count($parts) == 2) { // consultation d'un profil : 2 morceaux (profil/pseudoDeLaPersonne) + $result["controller"] = "Profil"; + $result["action"] = "display"; + $result["params"]["slug"] = $parts[1]; + } /*** consultation des classements ***/ + else if ($parts[0] == "classement" && count($parts) > 1) { // si classement général : 2 morceaux(classement/global), si classement spécifique : 3 morceaux (classement/jeu/nomDuJeu) + $result["controller"] = "Classement"; + $result["action"] = "display"; + $result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL, on le stocke aussi + for ($k = 2; $k < count($parts); $k++) { // on recompose le bout d'URL encore inutilisé + $result["params"]["slug"] = $result["params"]["slug"] . '/' . $parts[$k]; + } + } /*** connexion au site ***/ + else if ($parts[0] == "connexion" && count($parts) == 1) { // formulaire de connexion + $result["controller"] = "Connexion"; + $result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire + } else if ($parts[0] == "connexion" && count($parts) == 2 && $parts[1] == "valid") { // connexion réussie + $result["controller"] = "Connexion"; + $result["action"] = "displayValid"; // "displayValid" pour afficher la page avec le message de réussite + } else if ($parts[0] == "connexion" && count($parts) == 2 && $parts[1] == "verify") { // connexion réussie + $result["controller"] = "Connexion"; + $result["action"] = "verify"; // "verify" pour appeler la méthode de vérification + } /*** inscription au site ***/ + else if ($parts[0] == "inscription" && count($parts) == 1) { // formulaire de connexion + $result["controller"] = "Register"; + $result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire + } else if ($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "valid") { // connexion réussie + $result["controller"] = "Register"; + $result["action"] = "displayValid"; // "displayValid" pour afficher la page avec le message de réussite + } else if ($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "verify") { // vérification de la validité des champs + $result["controller"] = "Register"; + $result["action"] = "verify"; // "verify" pour appeler la méthode de vérification + } else if ($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "save") { // réalisation de l'inscription dans la BDD + $result["controller"] = "Register"; + $result["action"] = "save"; // "save" pour appeler la méthode d'enregistrement dans la BDD + } /*** Ajout de partie ***/ + else if ($parts[0] == "add_partie" && count($parts) == 1) { + $result["controller"] = "Partie"; + $result["action"] = "displayStep0"; + } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "valid") { + $result["controller"] = "Partie"; + $result["action"] = "displayValid"; + } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "step1") { + $result["controller"] = "Partie"; + $result["action"] = "displayStep1"; + } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "step2") { + $result["controller"] = "Partie"; + $result["action"] = "displayStep2"; + } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "stepe1") { $result["controller"] = "Partie"; - $result["action"] = "displayValid"; // "displayForm" pour afficher le formulaire + $result["action"] = "displayStepe1"; + } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "stepe2") { + $result["controller"] = "Partie"; + $result["action"] = "displayStepe2"; + } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verifystep0") { + $result["controller"] = "Partie"; + $result["action"] = "verifyStep0"; + } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verifystep1") { + $result["controller"] = "Partie"; + $result["action"] = "verifyStep1"; + } else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verifystep2") { + $result["controller"] = "Partie"; + $result["action"] = "verifyStep2"; } - else if($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verify"){ // Page d'ajout réussie + else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "addjoueurs1") { $result["controller"] = "Partie"; - $result["action"] = "verify"; // "displayForm" pour afficher le formulaire + $result["action"] = "addjoueurs1"; } - - // à chaque fois qu'on crée une nouvelle page, il faut rajouter un cas à cet endroit ! - - // si on n'a rien trouvé que l'on connaissait, alors la page demandée n'existe pas => erreur 404. Ça tombe bien, c'est comme ça qu'on a initialisé la variable ! :-D - } - return $result; // on renvoie le tableau avec les informations nécessaires pour savoir quoi faire - } + else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "deljoueurs1") { + $result["controller"] = "Partie"; + $result["action"] = "deljoueurs1"; + } + else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "addequipe") { + $result["controller"] = "Partie"; + $result["action"] = "addequipe"; + } + else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "delequipe") { + $result["controller"] = "Partie"; + $result["action"] = "delequipe"; + } + + + // à chaque fois qu'on crée une nouvelle page, il faut rajouter un cas à cet endroit ! + + // si on n'a rien trouvé que l'on connaissait, alors la page demandée n'existe pas => erreur 404. Ça tombe bien, c'est comme ça qu'on a initialisé la variable ! :-D + } + return $result; // on renvoie le tableau avec les informations nécessaires pour savoir quoi faire + } } diff --git a/app/model/ELO_function.php b/app/model/ELO_function.php index 92e428d9e7949f0730fc441405bc1590b7d6ce03..6aa37837158ec5e18b43668fbec09b4c620a19be 100644 --- a/app/model/ELO_function.php +++ b/app/model/ELO_function.php @@ -97,7 +97,7 @@ function ELO_classement($S, $R, $K) } -/** Fonction qui calcules les différentiels de scores obtenus après une à count($S) joueurs +/** Fonction qui calcule les différentiels de scores obtenus après une à count($S) joueurs * en considérant que $R correspond au score des joueurs à cette partie. * Ne prend pas en compte les écarts de scores entre les joueurs, la fonction ne construisant qu'un classement * entre les joueurs. @@ -117,7 +117,7 @@ function ELO_scores($S, $R, $K){ throw new DomainException; $R_classement = array_fill(0, $m, 0); - asort($R); + arsort($R); $i = 1; foreach ($R as $k => $val){ $R_classement[$k] = $i; diff --git a/app/model/Jeu.php b/app/model/Jeu.php index 56d75dfb9a66b41454d58e75638a0124345ca3bc..f873c0355e543749ab6e61aef73c25f3e11c95f4 100644 --- a/app/model/Jeu.php +++ b/app/model/Jeu.php @@ -1,5 +1,6 @@ <?php + class Jeu extends Model { public $id, $nom, $description, $slug; @@ -86,6 +87,32 @@ class Jeu extends Model { } } + + public static function getFromNom($nom_jeu) + { + $db = Database::getInstance(); + $sql = "SELECT * FROM R_jeu WHERE nom = :nom"; + $stmt = $db->prepare($sql); + $stmt->setFetchMode(PDO::FETCH_CLASS, "Jeu"); // règle le type dans lequel on doit mettre les données (PDO va chercher les attributs de la classe de même nom que ses colonnes de BDD et mettre dedans les valeurs correspondantes) + $stmt->execute(array(":nom" => $nom_jeu)); + return $stmt->fetch(); + } + + + public static function checkExistsNom($nom) + { // méthode permettant de vérifier si un jeu existe dans la BDD + $db = Database::getInstance(); // on récupère la connexion à la BDD + $sql = "SELECT * FROM R_jeu WHERE nom = :nom"; + $req = $db->prepare($sql); // on prépare la requête + $req->execute(array(":nom" => $nom)); // on remplace les variables dans la requête + + if ($result = $req->fetch()) { // on récupère l'enregistrement, s'il existe + return 1; + } + + return 0; // on aurait pu mettre deux return (un dans le if et un ici), mais bon... + } + } diff --git a/app/model/Partie.php b/app/model/Partie.php index fe5a9c0e5f2d41f2d75dfa50d2dfd8df91044bac..6ec08a224ac58c088001b63ab912d161b3b56466 100644 --- a/app/model/Partie.php +++ b/app/model/Partie.php @@ -11,7 +11,8 @@ class Partie extends Model { public $joueurs, $scores, $lejeu, $date, $slug; - public static function getFromSlug($slug_partie) { + public static function getFromSlug($slug_partie) + { $db = Database::getInstance(); $sql = "SELECT * FROM R_partie WHERE slug = :slug"; $stmt = $db->prepare($sql); @@ -20,15 +21,17 @@ class Partie extends Model return $stmt->fetch(); } - public static function getList() { - $db = Database::getInstance(); + public static function getList() + { + $db = Database::getInstance() ; $sql = "SELECT * FROM R_partie"; $stmt = $db->query($sql); $stmt->setFetchMode(PDO::FETCH_CLASS, "Partie"); return $stmt->fetchAll(); } - public static function checkExists($slug_partie) { // méthode permettant de vérifier si une partie 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 @@ -38,142 +41,164 @@ class Partie extends Model return true; } - return false; // 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){ + private static function calcul_classement($R) + { $m = count($R); $R_classement = array_fill(0, $m, 0); - asort($R); + arsort($R); $i = 1; - foreach ($R as $k => $val){ + foreach ($R as $k => $val) { $R_classement[$k] = $i; $i++; } return $R_classement; } - private static function classeur($score, $id_jeu){ + + public static function updateClassement($jeu) + { $db = Database::getInstance(); - $sql = "SELECT classement, score FROM R_joueur_jeu WHERE jeu = :id_jeu SORT BY classement DESC;"; - $stmt = $db->prepare($sql); - if($stmt->execute(array(":id_jeu" => $id_jeu))) { - while ($tmp = $stmt->fetch()) { - if ($score <= $tmp['score']) - { - return $tmp['classement'] + 1; + $sql1 = "SELECT joueur FROM R_joueur_jeu ORDER BY score DESC"; + $sql2 = "UPDATE R_joueur_jeu SET classement = :classement WHERE joueur = :joueur AND jeu = :jeu;"; + $stmt1 = $db->prepare($sql1); + $stmt2 = $db->prepare($sql2); + if ($stmt1->execute()) { + $i = 1; + while ($row = $stmt1->fetch()) { + if ($stmt2->execute(array(":classement" => $i, ":joueur" => $row['joueur'], ":jeu" => $jeu->slug))) { + + } else { + echo "pb updateClassement"; + die(); } + $i++; } + } else { + echo "pb updateClassement"; + die(); } - return 1; - } + } - public static function addPartie($joueurs, $scores, $nom_jeu) { + public static function addPartie($joueurs, $scores, $jeu) + { $db = Database::getInstance(); $datestr = date("Y-m-d H:i:s"); - $sql0 = "SELECT id FROM R_jeu WHERE nom = :nom_jeu;"; - $sql1 = "INSERT INTO R_partie (id_jeu, date) VALUES (:id_jeu, :date);"; - $sqlp = "SELECT id FROM R_partie WHERE id_jeu = :id_jeu AND date = :date;"; - $sql2 = "SELECT id FROM R_joueur WHERE nom = :joueur;"; + $sql1 = "INSERT INTO R_partie (jeu, date) VALUES (:id_jeu, :date);"; + $sql2 = "SELECT id FROM R_partie WHERE jeu = :id_jeu AND date = :date;"; $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, id_jeu) - VALUES (:id_partie, :id_joueur,:classement, :score, :id_jeu);"; - $sql5 = "UPDATE R_joueur_jeu SET score = :new_score, classement = :new_classement WHERE joueur = :id_joueur AND jeu = :id_jeu;"; + $sql4 = "INSERT INTO R_joueur_partie (partie, joueur, classement, score) + VALUES (:partie, :joueur,:classement, :score);"; + $sql5 = "UPDATE R_joueur_jeu SET score = :new_score WHERE joueur = :id_joueur AND jeu = :id_jeu;"; $sqlN = "INSERT INTO R_joueur_jeu (joueur, jeu, score) VALUES (:id_joueur, :id_jeu, :score);"; - $sql6 = "UPDATE R_joueur_jeu SET classement = classement + 1 WHERE classement > :new_classement;"; - $stmt0 = $db->prepare($sql0); $stmt1 = $db->prepare($sql1); - $stmtp = $db->prepare($sqlp); $stmt2 = $db->prepare($sql2); $stmt3 = $db->prepare($sql3); $stmt4 = $db->prepare($sql4); $stmt5 = $db->prepare($sql5); - $stmt6 = $db->prepare($sql6); - print($nom_jeu); - - if($stmt0->execute(array(":nom_jeu" => $nom_jeu))) { - if($row = $stmt0->fetch()) { - $id_jeu = $row[0]; - if(!Jeu::checkExistsId($id_jeu)) - throw new UnexpectedValueException; - - if($stmt1->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr))) - { - $stmtp->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr)); - $id_partie = $stmtp->fetch()['id']; - $m = count($joueurs); - $id_joueur = array_fill(0, $m, 0); - for ($j = 0; $j<$m; $j++){ - $id_joueur[$j] = $row[0]; - if($stmt2->execute(array(":joueur" => $joueurs[$j]))) { - if ($row = $stmt2->fetch()) { - $id_joueur[$j] = $row[0]; - } - } - else - echo "stmt2, dc"; - } - $old_score = array_fill(0, $m, 0); - for($j = 0; $j<$m; $j++) { - if ($stmt3->execute(array(":id_joueur" => $id_joueur[$j], ":id_jeu" => $id_jeu))) { + + if ($stmt1->execute(array(":id_jeu" => $jeu->slug, ":date" => $datestr))) { + // insertion d'une nouvelle partie + // on suppose que si l'insertion fonctionne, la lecture aussi, donc que les droits d'accés sont bons + $stmt2->execute(array(":id_jeu" => $jeu->slug, ":date" => $datestr)); + $id_partie = $stmt2->fetch()['id']; + + $m = count($scores); + + $old_score = array_fill(0, $m, 0); + $old_score_e = array(); + foreach ($joueurs as $k => $joueur){ + // version avec équipes + if ($jeu->type == 'equipes'){ + $old_score_e[$k] = array(); + foreach ($joueur as $kj => $j){ + if ($stmt3->execute(array(":id_joueur" => $j->slug, ":id_jeu" => $jeu->slug))) { if ($row = $stmt3->fetch()) { - $old_score[$j] = $row[0]; - } - else { - $old_score[$j] = 1000; + // Le joueur a déja joué à ce jeu + $old_score_e[$k][$kj]= $row[0]; + } else { + // ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation. + $old_score_e[$k][$kj]= 1000; $stmtN = $db->prepare($sqlN); - if($stmtN->execute(array(":id_joueur" => $id_joueur[$j], ":id_jeu" => $id_jeu, ":score" => 1000))){ - echo "insertion joueur $j<br />"; - } - else{ - echo "stmt n, dc <br />"; - print_r($id_joueur); - print($id_jeu); - die(); - } + if ($stmtN->execute(array(":id_joueur" => $j->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) { + + } else + return 2; } + $old_score[$k] = array_sum($old_score_e[$k])/count($old_score_e[$k]); } - else - echo "stmt3, dc<br />"; } - $diff_scores = ELO_scores($scores, $scores, 32); - $classement = self::calcul_classement($diff_scores); - print_r($old_score); - print_r($diff_scores); - - for($j = 0; $j<$m; $j++) { - if($stmt4->execute(array(":id_partie" => $id_partie, - ":id_joueur" => $id_joueur[$j], "id_jeu" => $id_jeu, - ":classement" => $classement[$j], ":score" => $old_score[$j]))) { - $newS = $old_score[$j] + $diff_scores[$j]; - print($newS); - $classement_jeu = Partie::classeur($newS, $id_jeu); + } + else{ + // récupération du score actuel de chaque joueur + if ($stmt3->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug))) { + if ($row = $stmt3->fetch()) { + // Le joueur a déja joué à ce jeu + $old_score[$k] = $row[0]; + } else { + // ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation. + $old_score[$k] = 1000; + $stmtN = $db->prepare($sqlN); + if ($stmtN->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) { + + } else + return 2; + } + + } + } + } + // Calcul de la nouvelle différence de scores et du classement de chacun dans la partie + $diff_scores = ELO_scores($old_score, $scores, 32); + $classement = self::calcul_classement($diff_scores); + print_r($joueurs); + print_r($old_score_e); + foreach ($joueurs as $k => $joueur) { + if ($jeu->type == 'equipes') { + foreach ($joueur as $kj => $j){ + // Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie) + // pour chaque joueur + if ($stmt4->execute(array(":partie" => $id_partie, + ":joueur" => $j->slug, + ":classement" => $classement[$k], ":score" => $old_score_e[$k][$kj])) + ) { + $newS = $old_score[$k][$kj] + $diff_scores[$k]; + // On met à jour le score du joueur actuel dans sa relation avec le jeu if ($stmt5->execute(array(":new_score" => $newS, - ":id_jeu" => $id_jeu, ":id_joueur" => $id_joueur[$j], ":new_classement" => $classement_jeu)) + ":id_jeu" => $jeu->slug, ":id_joueur" => $j->slug)) ) { - if ($stmt6->execute(array(":new_classement" => $classement_jeu))){ - //C'est dans la boite - echo "works well enough<br />"; - } - else - echo "stmt6, dc<br />"; - } - else - echo "stmt5, dc<br />"; - } - else - echo "stmt4, dc<br />"; + } else + return 2; + } else + return 2; } } - else - echo "stmt1, dc<br />"; + else { + // Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie) + // pour chaque joueur + if ($stmt4->execute(array(":partie" => $id_partie, + ":joueur" => $joueur->slug, + ":classement" => $classement[$k], ":score" => $old_score[$k])) + ) { + $newS = $old_score[$k] + $diff_scores[$k]; + // On met à jour le score du joueur actuel dans sa relation avec le jeu + if ($stmt5->execute(array(":new_score" => $newS, + ":id_jeu" => $jeu->slug, ":id_joueur" => $joueur->slug)) + ) { + } else + return 2; + } else + return 2; + } } - } - else { - echo "Arise, ça marche pas...<br />"; die(); - } + } else + return 2; + // met à jour le classement de tous les joueurs + self::updateClassement($jeu); + return 0; } - -} \ No newline at end of file +} diff --git a/app/model/Profil.php b/app/model/Profil.php index 4c1501ec43c2b981057601fcc8392b85b6c801d3..1a05985e74ce4d0b2e9570af6bc36b4be492f29a 100644 --- a/app/model/Profil.php +++ b/app/model/Profil.php @@ -19,7 +19,7 @@ class Profil extends Model { // classe de modèle pour l'affichage de profils $req->setFetchMode(PDO::FETCH_CLASS, "Profil"); return $req->fetchAll(); } - + public static function setPassword($slug, $password) { $db = Database::getInstance(); // idem à au-dessus $sql = "UPDATE R_joueur SET password = :password WHERE slug = :slug"; @@ -51,12 +51,26 @@ class Profil extends Model { // classe de modèle pour l'affichage de profils return $ret; // on retourne les données du membre } - public static function getNbMembers() { // méthode permettant de récupérer les informations relatives au dernier membre inscrit en BDD + public static function getNbMembers() + { // méthode permettant de récupérer les informations relatives au dernier membre inscrit en BDD $db = Database::getInstance(); // on récupère la connexion à la BDD $sql = "SELECT COUNT(*) FROM R_joueur"; // on définit la requête qu'on enverra $req = $db->query($sql); // on exécute la requête return $req->fetch()[0]; // on retourne le nombre } + + public static function checkExists($slug_profil) { // méthode permettant de vérifier si un profil existe dans la BDD + $db = Database::getInstance(); // on récupère la connexion à la BDD + $sql = "SELECT * FROM R_joueur WHERE slug = :slug"; + $req = $db->prepare($sql); // on prépare la requête + $req->execute(array(":slug" => $slug_profil)); // on remplace les variables dans la requête + + if($result = $req->fetch()) { // on récupère l'enregistrement, s'il existe + return 1; + } + + return 0; // on aurait pu mettre deux return (un dans le if et un ici), mais bon... + } } diff --git a/app/view/Partie/displayForm.html b/app/view/Partie/displayStep0.html similarity index 55% rename from app/view/Partie/displayForm.html rename to app/view/Partie/displayStep0.html index 0121eea886f083e04c82037f93f1a10f305dae04..8d5b6d4ba4fe77296da1aaeed1aa9b838a213f44 100644 --- a/app/view/Partie/displayForm.html +++ b/app/view/Partie/displayStep0.html @@ -11,25 +11,18 @@ <article> <h2>Formulaire d'ajout de partie</h2> + <h3>Sélection d'un jeu</h3> <div class="addjeu-form"> - <form method="post" action="add_partie/verify"> + <form method="post" action="add_partie/verifystep0"> <label for="jeu">Jeu : </label> <select name="jeu" id="jeu"> <?php foreach($this->liste as $jeu){ ?> <option><?php echo $jeu->nom; ?></option> <?php } ?> </select><br /> - <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/> <div class="submit"> - <input type="reset" name="reset" value="Réinitialiser" /> - <input type="submit" name="submit" value="Demander l'ajout" /> + <input type="reset" name="reset" value="Réinitialiser" /> + <input type="submit" name="submit" value="Étape suivante" /> </div> </form> </div> diff --git a/app/view/Partie/displayStep1.html b/app/view/Partie/displayStep1.html new file mode 100644 index 0000000000000000000000000000000000000000..ebeeaae4c80ec459cb8be67129a795455553aa9f --- /dev/null +++ b/app/view/Partie/displayStep1.html @@ -0,0 +1,45 @@ +<?php + $page_title = "Formulaire d'ajout de partie"; + include(ROOT."/app/view/Includes/header.include.html"); +?> +<?php $jeuactuel = $this->jeuactuel ?> + <article> + <h2>Formulaire d'ajout de partie</h2> + <h3>Sélection des joueurs</h3> + <div class="addjeu-form"> + + Jeu : <?php echo $jeuactuel->nom; ?><br /> + Joueurs :<br /> + <form method="post" action="addjoueurs1"> + <label for="joueur">Ajouter un joueur (pseudo) :</label> + <input type="text" id="joueur" name="joueur" /> + <input type="submit" name="submit" value="ajouter un joueur" /> + </form> + <?php if (isset($_SESSION['joueurs_select'])) { ?> + Joueurs actuellement sélectionnés : + <ul> + <?php foreach($_SESSION['joueurs_select'] as $k => $j){ ?> + <li> + <?php echo $j->pseudo; ?> + <form method="post" action="deljoueurs1"> + <input type="hidden" value="<?php echo $k;?>" name="joueurdel"> + <input type="submit" name="submit" value="supprimer ce joueur" /> + </form> + </li> + <?php } ?> + </ul> + + <form method="post" action="verifystep1"> + <div class="submit"> + <input type="reset" name="reset" value="Réinitialiser" /> + <input type="submit" name="submit" value="Étape suivante" /> + </div> + </form> + <?php } ?> + <form action="../add_partie"> + <input type="submit" name="submit" value="Étape précédente" /> + </form> + </div> + </article> + +<?php include(ROOT."/app/view/Includes/footer.include.html"); ?> diff --git a/app/view/Partie/displayStep2.html b/app/view/Partie/displayStep2.html new file mode 100644 index 0000000000000000000000000000000000000000..c63162b2667e78aed4ea9a9e21f620a174a88cb8 --- /dev/null +++ b/app/view/Partie/displayStep2.html @@ -0,0 +1,31 @@ +<?php + $page_title = "Formulaire d'ajout de partie"; + include(ROOT."/app/view/Includes/header.include.html"); +?> +<?php $jeuactuel = $this->jeuactuel ?> + <article> + <h2>Formulaire d'ajout de partie</h2> + <h3>Entrée des scores</h3> + <div class="addjeu-form"> + <form method="post" action="verifystep2"> + Jeu : <?php echo $jeuactuel->nom; ?><br /> + Joueurs : + <ul> + <?php foreach($this->listejactuel as $joueur){ ?> + <li><?php echo $joueur->pseudo; ?> Score obtenu : <input type="text" title="score" name="scores[]" /></li> + <?php } ?> + </ul> + <br /> + <div class="submit"> + + <input type="reset" name="reset" value="Réinitialiser" /> + <input type="submit" name="submit" value="Demander l'ajout" /> + </div> + </form> + <form action="step1"> + <input type="submit" name="submit" value="Étape précédente" /> + </form> + </div> + </article> + +<?php include(ROOT."/app/view/Includes/footer.include.html"); ?> diff --git a/app/view/Partie/displayStepe1.html b/app/view/Partie/displayStepe1.html new file mode 100644 index 0000000000000000000000000000000000000000..f133dc1ececaac7a67da0b61b330b8a24de976d6 --- /dev/null +++ b/app/view/Partie/displayStepe1.html @@ -0,0 +1,56 @@ +<?php + $page_title = "Formulaire d'ajout de partie"; + include(ROOT."/app/view/Includes/header.include.html"); +?> +<?php $jeuactuel = $this->jeuactuel ?> +<article> + <h2>Formulaire d'ajout de partie</h2> + <h3>Sélection des joueurs</h3> + <div class="addjeu-form"> + + Jeu : <?php echo $jeuactuel->nom; ?><br/> + Équipes :<br/> + <?php foreach($this->equipes as $ke => $e) { ?> + <h4>Équipe <?php echo $ke+1; ?> </h4> + <ul> + <?php + foreach($e as $k => $j){ ?> + <li> + <?php echo $j->pseudo; ?> + <form method="post" action="deljoueurs1"> + <input type="hidden" value="<?php echo $k;?>" name="joueurdel"/> + <input type="hidden" value="<?php echo $ke;?>" name="equipejdel"/> + <input type="submit" name="submit" value="supprimer ce joueur"/> + </form> + + </li> + <?php } ?> + <form method="post" action="addjoueurs1"> + <label for="joueur">Ajouter un joueur à l'équipe <?php echo $ke+1;?> :</label> + <input type="text" id="joueur" name="joueur" /> + <input type="hidden" value="<?php echo $ke;?>" name="equipejadd" id="equipejadd"/> + <input type="submit" name="submit" value="Ajouter un joueur"/> + </form> + <form method="post" action="delequipe"> + <input type="hidden" value="<?php echo $ke;?>" name="equipe"/> + <input type="submit" name="submit" value="Supprimer l'équipe <?php echo $ke+1;?>"/> + </form> + </ul> + <?php } ?> + <form method="post" action="addequipe"> + <input type="submit" name="submit" value="Ajouter une équipe"/> + </form> + + <form method="post" action="verifystep1"> + <div class="submit"> + <input type="reset" name="reset" value="Réinitialiser"/> + <input type="submit" name="submit" value="Étape suivante"/> + </div> + </form> + <form action="../add_partie"> + <input type="submit" name="submit" value="Étape précédente"/> + </form> + </div> +</article> + +<?php include(ROOT."/app/view/Includes/footer.include.html"); ?> diff --git a/app/view/Partie/displayStepe2.html b/app/view/Partie/displayStepe2.html new file mode 100644 index 0000000000000000000000000000000000000000..fdfd21d90b1e67bf10b4369906da695911810f4c --- /dev/null +++ b/app/view/Partie/displayStepe2.html @@ -0,0 +1,36 @@ +<?php + $page_title = "Formulaire d'ajout de partie"; + include(ROOT."/app/view/Includes/header.include.html"); +?> +<?php $jeuactuel = $this->jeuactuel ?> + <article> + <h2>Formulaire d'ajout de partie</h2> + <h3>Entrée des scores</h3> + <div class="addjeu-form"> + <form method="post" action="verifystep2"> + Jeu : <?php echo $jeuactuel->nom; ?><br /> + Équipes :<br/> + <?php foreach($this->equipes as $ke => $e) { ?> + <h4>Équipe <?php echo $ke+1; ?> </h4> + <ul> + <?php + foreach($e as $k => $j){ ?> + <li> + <?php echo $j->pseudo; ?> + </li> + <?php } ?> + </ul> + Score obtenu : <input type="text" title="score" name="scores[]" /> + <?php } ?> + <div class="submit"> + <input type="reset" name="reset" value="Réinitialiser"/> + <input type="submit" name="submit" value="Demander l'ajout"/> + </div> + </form> + <form action="../add_partie/stepe1"> + <input type="submit" name="submit" value="Étape précédente"/> + </form> + </div> + </article> + +<?php include(ROOT."/app/view/Includes/footer.include.html"); ?> diff --git a/generate_base.sql b/generate_base.sql new file mode 100644 index 0000000000000000000000000000000000000000..22770ab4d3dbd7f8f9653e4a2636d134bad76cd6 --- /dev/null +++ b/generate_base.sql @@ -0,0 +1,56 @@ +DROP TABLE IF EXISTS R_jeu; +CREATE TABLE R_jeu ( + nom VARCHAR(255) NOT NULL, + description TEXT NOT NULL, + slug VARCHAR(255) PRIMARY KEY, + est_valide TINYINT(1) NOT NULL, + max_joueurs INT(11), + min_joueurs INT(11), + min_equipes INT(11), + max_equipes INT(11), + type ENUM ('duels', 'equipes') NOT NULL +); + +DROP TABLE IF EXISTS R_joueur; +CREATE TABLE R_joueur ( + slug VARCHAR(255) PRIMARY KEY, + pseudo VARCHAR(100) NOT NULL, + password TEXT NOT NULL, + nom VARCHAR(150) NOT NULL, + prenom VARCHAR(150) NOT NULL, + email VARCHAR(255) UNIQUE NOT NULL, + description TEXT NOT NULL +); + +DROP TABLE IF EXISTS R_admin; +CREATE TABLE R_admin ( + identite varchar(255) REFERENCES R_joueur(slug), + PRIMARY KEY (identite) + ); + +DROP TABLE IF EXISTS R_partie; +CREATE TABLE R_partie ( + id INT(11) PRIMARY KEY AUTO_INCREMENT, + jeu VARCHAR(255) REFERENCES R_jeu(slug), + date TIMESTAMP NOT NULL +); + +DROP TABLE IF EXISTS R_joueur_partie; +CREATE TABLE R_joueur_partie ( + partie INT(11) REFERENCES R_partie(id), + joueur VARCHAR(255) REFERENCES R_joueur(slug), + classement INT(11) NOT NULL, + score INT(11) NOT NULL, + PRIMARY KEY (joueur, partie) +); + +DROP TABLE IF EXISTS R_joueur_jeu; +CREATE TABLE R_joueur_jeu ( + joueur varchar(255) REFERENCES R_joueur(slug), + jeu VARCHAR(255) REFERENCES R_jeu(slug), + score INT(11), + classement INT(11), + est_jeu_favoris tinyint(1), + PRIMARY KEY (joueur, jeu) +); + diff --git a/projweb.sql b/projweb.sql deleted file mode 100644 index 708e43066dcf215cd59af040c940bafb35f60437..0000000000000000000000000000000000000000 --- a/projweb.sql +++ /dev/null @@ -1,187 +0,0 @@ --- phpMyAdmin SQL Dump --- version 4.5.2 --- http://www.phpmyadmin.net --- --- Client : localhost --- Généré le : Mar 03 Mai 2016 à 23:23 --- Version du serveur : 10.1.13-MariaDB --- Version de PHP : 7.0.5 - -SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; -SET time_zone = "+00:00"; - - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8mb4 */; - --- --- Base de données : `projweb` --- - --- -------------------------------------------------------- - --- --- Structure de la table `R_admin` --- - -CREATE TABLE `R_admin` ( - `identite` varchar(255) CHARACTER SET utf8 NOT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1; - --- --- Contenu de la table `R_admin` --- - -INSERT INTO `R_admin` (`identite`) VALUES -('nestor'); - --- -------------------------------------------------------- - --- --- Structure de la table `R_jeu` --- - -CREATE TABLE `R_jeu` ( - `id` int(11) NOT NULL, - `nom` varchar(255) NOT NULL, - `description` text NOT NULL, - `slug` varchar(255) NOT NULL, - `est_valide` tinyint(1) NOT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Table des jeux enregistrés sur le site'; - --- --- Contenu de la table `R_jeu` --- - -INSERT INTO `R_jeu` (`id`, `nom`, `description`, `slug`, `est_valide`) VALUES -(1, 'Rencontres Cosmiques', 'Jeu de plateau de 3 à 6 joueurs dont le but consiste à remporter cinq planètes adverses.', 'rencontres-cosmiques', 1), -(2, 'Nom dE jeu de tèst~', 'blablabal', 'nom-de-jeu-de-test', 0); - --- -------------------------------------------------------- - --- --- Structure de la table `R_joueur` --- - -CREATE TABLE `R_joueur` ( - `id` int(11) NOT NULL, - `slug` varchar(255) NOT NULL, - `pseudo` varchar(100) NOT NULL, - `password` text NOT NULL, - `nom` varchar(150) NOT NULL, - `prenom` varchar(150) NOT NULL, - `email` varchar(255) NOT NULL, - `description` text NOT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Liste des joueurs inscrits sur le site'; - --- --- Contenu de la table `R_joueur` --- - -INSERT INTO `R_joueur` (`id`, `slug`, `pseudo`, `password`, `nom`, `prenom`, `email`, `description`) VALUES -(1, 'nestor', 'Nestor', '', 'Bochet', 'Vincent', 'vbochet@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)'), -(2, 'nestor1', 'Nestor1', '', 'Bochet1', 'Vincent', 'vbochet@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)'), -(3, 'nestor2', 'Nestor2', '', 'Bochet2', 'Vincent', 'vbochet@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)'), -(4, 'nestor3', 'Nestor3', '', 'Bochet3', 'Vincent', 'vbochet@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)'), -(5, 'nestor4', 'Nestor4', '', 'Bochet4', 'Vincent', 'vbochet@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)'); - --- -------------------------------------------------------- - --- --- Structure de la table `R_joueur_jeu` --- - -CREATE TABLE `R_joueur_jeu` ( - `joueur` varchar(255) NOT NULL, - `jeu` varchar(255) NOT NULL, - `score` int(11) DEFAULT NULL, - `classement` int(11) DEFAULT NULL, - `est_jeu_favoris` tinyint(1) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Table des résultats des joueurs à des parties de jeu'; - --- --- Contenu de la table `R_joueur_jeu` --- - -INSERT INTO `R_joueur_jeu` (`joueur`, `jeu`, `score`, `classement`, `est_jeu_favoris`) VALUES -('nestor', 'rencontres-cosmiques', 25, 1, 1); - --- -------------------------------------------------------- - --- --- Structure de la table `R_joueur_partie` --- - -CREATE TABLE `R_joueur_partie` ( - `partie` int(11) NOT NULL, - `joueur` int(11) NOT NULL, - `id_jeu` int(11) NOT NULL, - `classement` int(11) NOT NULL, - `score` int(11) NOT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Liste des résultats de chaque joueur pour chaque partie'; - --- -------------------------------------------------------- - --- --- Structure de la table `R_partie` --- - -CREATE TABLE `R_partie` ( - `id` int(11) NOT NULL, - `id_jeu` int(11) NOT NULL, - `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Liste des parties jouées'; - --- --- Index pour les tables exportées --- - --- --- Index pour la table `R_admin` --- -ALTER TABLE `R_admin` - ADD KEY `admin_id` (`identite`); - --- --- Index pour la table `R_jeu` --- -ALTER TABLE `R_jeu` - ADD PRIMARY KEY (`id`), - ADD KEY `jeu_slug` (`slug`); - --- --- Index pour la table `R_joueur` --- -ALTER TABLE `R_joueur` - ADD PRIMARY KEY (`id`); - --- --- Index pour la table `R_partie` --- -ALTER TABLE `R_partie` - ADD PRIMARY KEY (`id`); - --- --- AUTO_INCREMENT pour les tables exportées --- - --- --- AUTO_INCREMENT pour la table `R_jeu` --- -ALTER TABLE `R_jeu` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; --- --- AUTO_INCREMENT pour la table `R_joueur` --- -ALTER TABLE `R_joueur` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; --- --- AUTO_INCREMENT pour la table `R_partie` --- -ALTER TABLE `R_partie` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/valeurs.sql b/valeurs.sql new file mode 100644 index 0000000000000000000000000000000000000000..fbb392c4674fad9c75242ff440039f02870ac6e3 --- /dev/null +++ b/valeurs.sql @@ -0,0 +1,14 @@ +INSERT INTO R_jeu (nom, description, slug, est_valide, min_joueurs, max_joueurs, min_equipes, max_equipes, type) VALUES +('Rencontres Cosmiques', 'Jeu de plateau de 3 à 6 joueurs dont le but consiste à remporter cinq planètes adverses.', 'rencontres-cosmiques', 1, 3, 5, NULL, NULL, 'duels'), +('Jeu Équipes', 'cats', 'jeu-equipes', 0, 0, NULL, 0, 4, 'equipes'); + +INSERT INTO R_joueur (slug, pseudo, password, nom, prenom, email, description) VALUES +('nestor', 'Nestor', '', 'Bochet', 'Vincent', 'vbochet@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)'), +('nestor1', 'Nestor1', '', 'Bochet1', 'Vincent', 'vbochet1@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)'), +('nestor2', 'Nestor2', '', 'Bochet2', 'Vincent', 'vbochet2@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)'), +('nestor3', 'Nestor3', '', 'Bochet3', 'Vincent', 'vbochet3@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)'), +('nestor4', 'Nestor4', '', 'Bochet4', 'Vincent', 'vbochet4@gmail.com', 'L''un des quatre membres du groupe, le moins joueur des quatre. :)'); + + +INSERT INTO R_admin (identite) VALUES +('nestor');