RangLimier - Rang selon note d'un ECN
Cet outil permet, en entrant une note et une année d'ECN, de voir le rang le plus proche associé.
Attention : Cet outil est à but purement indicatif !
= :note
ORDER BY classement DESC
LIMIT 1";
$sqlLimiteHaute = "SELECT * FROM notes_rang
WHERE annee = :annee AND note <= :note
ORDER BY classement
LIMIT 1";
$reqLimBasse = $db->prepare($sqlLimiteBasse);
$reqLimBasse->execute([
"annee" => $_GET["annee"],
"note" => $_GET["note"]
]);
if ($reqLimBasse->rowCount() === 0) {
// Pas de note au dessus de la note entrée => Forcément 1er
$rangText = "Au dessus du 1er";
$rangMoyen = 1;
} else {
$reqLimiteHaute = $db->prepare($sqlLimiteHaute);
$reqLimiteHaute->execute([
"annee" => $_GET["annee"],
"note" => $_GET["note"]
]);
$rangBasArray = $reqLimBasse->fetch(PDO::FETCH_ASSOC);
if ($reqLimiteHaute->rowCount() === 0) {
// Pas de note en dessous => Forcément dernier
$rangMoyen = $rangBasArray["classement"] + 10;
$rangText = "Estimé environ à ".((int) $rangMoyen);
} else {
// Note entre 2 classements connus de la DB
$rangHautArray = $reqLimiteHaute->fetch(PDO::FETCH_ASSOC);
// Ligne non utilisée car révèle les points utilisés (entre xxx et yyy) sont connus
// $rangText = "Entre ".$rangBasArray["classement"]." et ".$rangHautArray["classement"];
$rangMoyen = ((int) $rangBasArray["classement"] + (int) $rangHautArray["classement"]) / 2;
$rangText = "Estimé environ à ".$rangMoyen;
}
}
echo "
Rang de la note pour l'ECN ".htmlentities($_GET["annee"])." : ".htmlentities($rangText)."
";
// Partie redirigeant vers le tableau
echo "Accéder au tableau de choix disponibles pour ce classement";
}
?>