burger-quizz/view/rank/bycat.php
2018-06-07 10:57:43 +02:00

155 lines
4.1 KiB
PHP

<h1>
Classement par catégorie
</h1>
<?php
require_once "dao/bdd.php";
require_once "dao/dao.php";
require_once "dao/cat_dao.php";
//Initialisation d'un DAO pour les catégories
$dao = new cat_dao();
//On récupère toutes les catégories si besoin
if (isset($_POST["cat"]))
{
if ($_POST["cat"] == "all")
{
$categories = $dao->getAllCat();
} else
{
$categories = array(0 => (array(0 => $_POST["cat"])));
}
} else
{
$categories = $dao->getAllCat();
}
//On met en place un formulaire pour le choix de la catégories
?>
<form method="post" action="index.php?page=rank_cat">
<fieldset>
<select name="cat">
<option value="all" class="center_item">
Toutes les catégories
</option>
<?php
foreach ($dao->getAllCat() as $cat)
{
if ((isset($_POST["cat"])) && ($cat[0] == $_POST["cat"]))
{
echo "<option value='" . $cat[0] . "' selected='selected'>";
} else
{
echo "<option value='" . $cat[0] . "'>";
}
echo $cat[0];
echo "</option>";
}
?>
</select>
<br/>
<br/>
<button type="submit">Valider</button>
</fieldset>
</form>
<?php
//Pour chaque catégories, on construit un tableau
foreach ($categories as $cat)
{
?>
<h2 class="center_item"><?php echo "$cat[0]"; ?></h2>
<table>
<thead>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Nombre de partie jouées</th>
<th>Total points</th>
<th>Rang</th>
</tr>
</thead>
<tbody>
<?php
//On commence par inclure les fichiers nécessaire
require_once "dao/point_manager.php";
require_once "dao/bdd.php";
require_once "dao/dao.php";
require_once "metier/ranker.php";
require_once "metier/sort_manager.php";
require_once "metier/user.php";
//On récupère d'abord tous les joueurs
$players = point_manager::getAllPlayer();
//On créer une variable de stockage
$storage = array();
$i = 0;
//On charge toutes les données
foreach ($players as $player)
{
$args = array();
$args["login"] = $player["login"];
$args["cat"] = $cat[0];
$storage[$i] = new ranker("cat", $args);
$i++;
}
//On trie le tableau selon le nombre de points totals
usort($storage, "sort_manager::pointsort");
//Affichage finale
$i = 1;
foreach ($storage as $rank)
{
//Si la personne n'a joué à aucun jeu, on passe à l'itération suivante
if ($rank->getNbGame() == 0)
{
continue;
}
if (isset($_SESSION["user"]) && $user->getLogin() == $rank->getUser()->getLogin())
echo "<tr class=\"selected\">";
else
echo "<tr>";
echo "<td>";
echo $rank->getUser()->getNom();
echo "</td>";
echo "<td>";
echo $rank->getUser()->getPrenom();
echo '</td>';
echo "<td>";
echo $rank->getNbGame();
echo '</td>';
echo "<td>";
echo floor($rank->getPoint());
echo '</td>';
echo "<td>";
echo $i;
echo '</td>';
echo '</tr>';
$i++;
}
?>
</tbody>
</table>
<?php
}
?>
<br/>
<br/>
<form class="center_item" method="post" action="index.php">
<fieldset>
<button type="button" onclick="javascript:navigate('index.php?page=rank')">Retour</button>
</fieldset>
</form>