diff --git a/app/controller/JeuController.php b/app/controller/JeuController.php index 4aa041b7de574c67d0eec7607e03b437dd267743..4aab222798c75cd5951fa01e20e33460c1e3ac31 100644 --- a/app/controller/JeuController.php +++ b/app/controller/JeuController.php @@ -4,6 +4,7 @@ class JeuController extends Controller { public function display() { $slug = $this->route["params"]["slug"]; //cf. le commentaire dans ProfilController.php $this->view->jeu = Jeu::getFromSlug($slug); + $this->view->classement = Classement::getFromSlug($slug); $this->view->display(); } diff --git a/app/model/Classement.php b/app/model/Classement.php index 4cc006b2afb0ec76132a14c37b741395272782f2..898f29853593db591365950f80c98db91f2d1c91 100644 --- a/app/model/Classement.php +++ b/app/model/Classement.php @@ -4,13 +4,21 @@ class Classement extends Model { // classe de modèle pour l'affichage de classe public $classement, $lejeu, $slug; // on définit les attributs de la classe public static function getFromSlug($slug) { // méthode permettant de récupérer le classement relatif à un jeu donné de la BDD - //$db = Database::getInstance(); // on récupère la connexion à la BDD - //$sql = "SELECT * FROM classements WHERE jeu = :slug"; // on définit la requête qu'on enverra (on considère que le slug contient jeu/nomDuJeu pour le classement par jeu. Donc il faudrait encore faire un explode() sur le slug. - //$req = $db->prepare($sql); // on prépare la requête (c'est là que la mémthode __call() est utile dans la classe Database d'ailleurs) - //$req->setFetchMode(PDO::FETCH_CLASS, "Classement"); // 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) - //$req->execute(array(":slug" => $slug)); // on remplace le "::slug" par sa valeur dans la requête - //return $req->fetch(); // on retourne le premier (et normalement unique) résultat en BDD - return array(array("pseudo"=>"debug","rank"=>$slug), array("pseudo"=>"exemple","rank"=>1), array("pseudo"=>"nestor","rank"=>42)); + $db = Database::getInstance(); // on récupère la connexion à la BDD + $sql = "SELECT * FROM R_joueur_jeu WHERE jeu = :slug ORDER BY classement"; // on définit la requête qu'on enverra (on considère que le slug contient jeu/nomDuJeu pour le classement par jeu. Donc il faudrait encore faire un explode() sur le slug. + $req = $db->prepare($sql); // on prépare la requête (c'est là que la mémthode __call() est utile dans la classe Database d'ailleurs) + $req->setFetchMode(PDO::FETCH_CLASS, "Classement"); // 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) + $req->execute(array(":slug" => $slug)); // on remplace le "::slug" par sa valeur dans la requête + $res = array(); + while($ligne = $req->fetch(PDO::FETCH_ASSOC)) { // parcours toute la liste + $perso = Profil::getFromSlug($ligne['joueur']); + $res[] = array( 'slug' => $ligne['joueur'], + 'pseudo' => $perso->pseudo, + 'score' => $ligne['score'], + 'classement' => $ligne['classement']); + } + return $res; + //return array(array("pseudo"=>"debug","rank"=>$slug), array("pseudo"=>"exemple","rank"=>1), array("pseudo"=>"nestor","rank"=>42)); } public static function getGlobal() { // méthode permettant de récupérer le classement génaral de la BDD diff --git a/app/view/Jeu/display.html b/app/view/Jeu/display.html index eb02f8351e2e6b42f1ffe6bba7957e7ce95960bb..35a394c30592403448ec45befccee2bd37df4e78 100644 --- a/app/view/Jeu/display.html +++ b/app/view/Jeu/display.html @@ -13,17 +13,22 @@ </p> </div> </article> - <div class="classement-card"> <table class="classement-table"> <tr><th>N°</th><th colspan="2">Joueur</th><th>Score</th></tr> - <tr><td>1</td><td><a href="profil.html"><img src="<?php echo BASE_URL; ?>/images/dummy_web_page.jpg" alt="Image de profil de <nom>" class="classement-profil-img"></a></td><td><a href="profil.html">Gaston</a></td><td>3000000</td></tr> - <tr><td>2</td><td><a href="profil.html"><img src="<?php echo BASE_URL; ?>/images/profil_42.jpg" alt="Image de profil de <nom>" class="classement-profil-img"></a></td><td><a href="profil.html">Laurent</a></td><td>150000</td></tr> - <tr><td>3</td><td><a href="profil.html"><img src="<?php echo BASE_URL; ?>/images/dummy_web_page.jpg" alt="Image de profil de <nom>" class="classement-profil-img"></a></td><td><a href="profil.html">Jerémy</a></td><td>15200</td></tr> - <tr><td>4</td><td><a href="profil.html"><img src="<?php echo BASE_URL; ?>/images/profil_42.jpg" alt="Image de profil de <nom>" class="classement-profil-img"></a></td><td><a href="profil.html">Lucas</a></td><td>500</td></tr> - <tr><td>5</td><td><a href="profil.html"><img src="<?php echo BASE_URL; ?>/images/dummy_web_page.jpg" alt="Image de profil de <nom>" class="classement-profil-img"></a></td><td><a href="profil.html">Christophe</a></td><td>-400</td></tr> + <? foreach($this->classement as $ligne) { + echo " + <tr> + <td>".$ligne['classement']."</td> + <td><a href=\"../profil/".$ligne['slug']."\"><img src=\"<?php echo BASE_URL; ?>/images/dummy_web_page.jpg\" alt=\"Image de profil de ".$ligne['pseudo']."\" class=\"classement-profil-img\"></a></td> + <td><a href=\"../profil/".$ligne['slug']."\">".$ligne['pseudo']."</a></td> + <td>".$ligne['score']."</td> + </tr>"; + } + ?> </table> </div> + <?php include(ROOT."/app/view/Includes/footer.include.html"); ?>