| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <?php
- require_once "libs/fnMain.php";
- /**************************
- * VALIDATION DES DONNEES
- **************************/
- $isClassementValid = isset($_GET["classement"]) && (int) $_GET["classement"] !== 0;
- /**************************
- * Affichage du formulaire
- **************************/
- ?>
- <!doctype html>
- <html lang="fr">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport"
- content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>RangLimier</title>
- <link rel="stylesheet" href="assets/bootstrap.min.css">
- <link rel="stylesheet" href="assets/divers.css">
- </head>
- <body>
- <h1>RangLimier</h1>
- <p>Cet outil permet, en entrant un classement (réel ou supposé), de voir les choix disponibles à ce classement.</p>
- <form action="index.php" method="get">
- <label for="classement">Veuillez entrer le classement (réel ou supposé) à tester : </label> <br>
- <input type="text" name="classement" <?= ($isClassementValid === TRUE) ? 'value='.(int) $_GET["classement"] : "" ?>>
-
- <button type="submit" class="btn btn-info">Envoyer</button>
- </form>
- <?php
- if ($isClassementValid) {
- $html = "<hr><h1>Tableau de classement</h1>";
-
- // On va récupérer tous les rangs limited dispo triés par idChoix
- $reqRL = $db->query("SELECT idChoix, annee, rangLimite FROM dataset");
- $rangLimites = $reqRL->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
- // var_dump($rangLimites);
-
- // Récupération des datasets
- $specialityDatasetAbrev = getCsvToArrayKeyValue($_SETTINGS["datasetFolder"]."/liste_specialites_abrev.csv");
- $specialityDataset = getCsvToArrayKeyValue($_SETTINGS["datasetFolder"]."/liste_specialites.csv");
- $cityDataset = getCsvToArrayKeyValue($_SETTINGS["datasetFolder"]."/liste_villes.csv");
- $inputClassement = (int) $_GET["classement"];
-
- // Calcul et affichage des données
- // Affichage de la 1ère ligne = Titre des colonnes
- $html .= "<table><thead><tr><th></th>";
- foreach ($specialityDatasetAbrev as $specialityName) {
- $html .= "<th scope='col'>".$specialityName."</th>";
- }
- $html .= "</tr></thead><tbody>";
-
- // Affichage de la suite du tableau avec le calcul
- foreach ($cityDataset as $cityId => $cityName) {
- $html .= "<tr><th scope='row'>".$cityName."</th>";
- foreach ($specialityDatasetAbrev AS $specialityId => $specialityName) {
- $idChoice = "0".$cityId.$specialityId;
-
- if (!isset($rangLimites[$idChoice])) {
- $nbAnneePropose = 0;
- $nbPossibleAnneePropose = 0;
- } else {
- $nbAnneePropose = count($rangLimites[$idChoice]);
- $nbPossibleAnneePropose = 0;
- foreach ($rangLimites[$idChoice] as $rangLimite) {
- if ((int) $rangLimite["rangLimite"] >= $inputClassement) {$nbPossibleAnneePropose++;}
- }
- }
-
- // Affichage de la cellule
- $html .= "<td class=\"";
- switch (TRUE) {
- case ($nbPossibleAnneePropose === 0 && $nbAnneePropose === 0):
- $html .= "never-available";
- break;
-
- case ($nbPossibleAnneePropose === 0):
- $html .= "no-choice";
- break;
-
- case ($nbAnneePropose > $nbPossibleAnneePropose && $nbPossibleAnneePropose === 1):
- $html .= "last-choice";
- break;
-
- case ($nbAnneePropose > $nbPossibleAnneePropose && $nbPossibleAnneePropose !== 1):
- $html .= "half-choices";
- break;
-
- case ($nbAnneePropose === $nbPossibleAnneePropose):
- $html .= "all-choices";
- break;
- }
- $html .= "\">";
- if ($nbPossibleAnneePropose > 0) {
- $html .= $nbPossibleAnneePropose;
- }
- $html .= "</td>";
- }
- $html .= "</tr>";
- }
-
- $html .= "</tbody></table><br>";
- echo $html;
- ?>
- <table>
- <thead>
- <th colspan="5">Légende (sur toutes les années)</th>
- </thead>
- <tbody>
- <tr>
- <td>Jamais proposé</td>
- <td class="no-choice">Aucun choix</td>
- <td class="last-choice">Une seule année</td>
- <td class="half-choices">Plusieurs choix</td>
- <td class="all-choices">Tous les choix</td>
- </tr>
- </tbody>
- </table>
- <br>
- <table>
- </table>
- <?php
- }
- ?>
- </body>
- </html>
|