From 87ce2f6ff95c66e894628d8fc894778243f35afe Mon Sep 17 00:00:00 2001 From: Morph01 Date: Thu, 18 Apr 2024 11:15:37 +0200 Subject: [PATCH] =?UTF-8?q?manque=20un=20formulaire=20pour=20afficher=20le?= =?UTF-8?q?s=20phases=20du=20joueurs=20courant=20et=20la=20fonctionnalit?= =?UTF-8?q?=C3=A9=201=20stat=20est=20correct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controleurs/statistiques_controleur.php | 11 +++++++++ modele/modele.php | 14 ++++++++++- sql/script_requete.sql | 2 +- sql/script_vues.sql | 27 +++++++++++++------- vues/statistiques_vue.php | 33 +++++++++++++++++++++++++ 5 files changed, 76 insertions(+), 11 deletions(-) diff --git a/controleurs/statistiques_controleur.php b/controleurs/statistiques_controleur.php index a711c96..6a1a77a 100644 --- a/controleurs/statistiques_controleur.php +++ b/controleurs/statistiques_controleur.php @@ -4,6 +4,16 @@ $message = ""; // recupération de la liste des tables $stats = get_statistiques(); +function get_joueurs_qualifs(int $id){ + $requete_qualif_joueurs = "SELECT T.nom, YEAR(T.date_deb), niveau + FROM participe Pa + JOIN phase Ph USING(idtournoi, niveau) + JOIN tournoi T USING(idtournoi) + WHERE Pa.idjoueur = $id AND Pa.est_qualifie AND Pa.a_joue + ORDER BY T.date_deb DESC, Ph.niveau DESC;"; + return get_infos_requete($requete_qualif_joueurs); +} + if ($stats == null || count($stats) == 0) { $message .= "Aucune statistique n'est disponible!"; } else { @@ -14,5 +24,6 @@ if ($stats == null || count($stats) == 0) { $joueurs_au_moins_deux_top_5 = get_infos_instances('joueurs_au_moins_deux_top_5'); $tailles_plateaux = get_infos_instances('tailles_plateaux'); $top_5_joueurs_parties_jouees = get_infos_instances('top_5_joueurs_parties_jouees'); + $qualif_joueurs = get_joueurs_qualifs(1); } ?> \ No newline at end of file diff --git a/modele/modele.php b/modele/modele.php index e7b1b01..8caa212 100644 --- a/modele/modele.php +++ b/modele/modele.php @@ -62,10 +62,16 @@ function get_statistiques() $requete_stat_globales = "SELECT * FROM stat_globales"; $requete_equipes_top_1 = "SELECT * FROM equipes_top_1"; $requete_participants_tournois_recents = "SELECT * FROM participants_tournois_recents"; + $requete_joueurs_au_moins_deux_top_5 = "SELECT * FROM joueurs_au_moins_deux_top_5"; + $requete_tailles_plateaux = "SELECT * FROM tailles_plateaux"; + $requete_top_5_joueurs_parties_jouees = "SELECT * FROM top_5_joueurs_parties_jouees"; $res_stat_globales = mysqli_query($connexion, $requete_stat_globales); $res_equipes_top_1 = mysqli_query($connexion, $requete_equipes_top_1); $res_participants_tournois_recents = mysqli_query($connexion, $requete_participants_tournois_recents); + $res_joueurs_au_moins_deux_top_5 = mysqli_query($connexion, $requete_joueurs_au_moins_deux_top_5); + $res_tailles_plateaux = mysqli_query($connexion, $requete_tailles_plateaux); + $res_top_5_joueurs_parties_jouees = mysqli_query($connexion, $requete_top_5_joueurs_parties_jouees); if ($res_stat_globales === FALSE || $res_equipes_top_1 === FALSE || $res_participants_tournois_recents === FALSE) { echo "Erreur d'exécution de la requête SQL : " . mysqli_error($connexion); @@ -75,11 +81,17 @@ function get_statistiques() $stat_globales = mysqli_fetch_all($res_stat_globales, MYSQLI_ASSOC); $equipes_top_1 = mysqli_fetch_all($res_equipes_top_1, MYSQLI_ASSOC); $participants_tournois_recents = mysqli_fetch_all($res_participants_tournois_recents, MYSQLI_ASSOC); + $joueurs_au_moins_deux_top_5 = mysqli_fetch_all($res_joueurs_au_moins_deux_top_5, MYSQLI_ASSOC); + $tailles_plateaux = mysqli_fetch_all($res_tailles_plateaux, MYSQLI_ASSOC); + $top_5_joueurs_parties_jouees = mysqli_fetch_all($res_top_5_joueurs_parties_jouees, MYSQLI_ASSOC); return [ 'stat_globales' => $stat_globales, 'equipes_top_1' => $equipes_top_1, - 'participants_tournois_recents' => $participants_tournois_recents + 'participants_tournois_recents' => $participants_tournois_recents, + 'joueurs_au_moins_deux_top_5' => $joueurs_au_moins_deux_top_5, + 'tailles_plateaux' => $tailles_plateaux, + 'top_5_joueurs_parties_jouees' => $top_5_joueurs_parties_jouees, ]; } diff --git a/sql/script_requete.sql b/sql/script_requete.sql index 8692700..d07b850 100644 --- a/sql/script_requete.sql +++ b/sql/script_requete.sql @@ -70,7 +70,7 @@ SELECT DISTINCT J.nom, J.prenom FROM joueur J JOIN classement_individuel CI2 ON J.idjoueur = CI2.idjoueur JOIN classement C1 ON C1.idclassement = CI1.idclassement JOIN classement C2 ON C2.idclassement = CI2.idclassement - WHERE CI1.rang >= 5 AND CI2.rang >= 5 + WHERE CI1.rang <= 5 AND CI2.rang <= 5 AND C1.portee = "nationale" AND C2.portee = "nationale" AND CI1.idclassement < CI2.idclassement; diff --git a/sql/script_vues.sql b/sql/script_vues.sql index 24faffa..8412032 100644 --- a/sql/script_vues.sql +++ b/sql/script_vues.sql @@ -1,3 +1,4 @@ +START TRANSACTION; -- "un n-uplet contenant le nombre de joueurs, le nombre d’équipes, le nombre de classements, le nombre de -- tournois et la moyenne des participants par tournoi". CREATE VIEW @@ -77,7 +78,7 @@ CREATE VIEW participe JOIN tournoi USING (idtournoi) WHERE - YEAR (date_deb) >= (YEAR (NOW()) - 3) + YEAR (date_deb) >= (YEAR (NOW ()) - 3) GROUP BY idtournoi ); @@ -96,8 +97,8 @@ CREATE VIEW JOIN classement C1 ON C1.idclassement = CI1.idclassement JOIN classement C2 ON C2.idclassement = CI2.idclassement WHERE - CI1.rang >= 5 - AND CI2.rang >= 5 + CI1.rang <= 5 + AND CI2.rang <= 5 AND C1.portee = "nationale" AND C2.portee = "nationale" AND CI1.idclassement < CI2.idclassement @@ -213,9 +214,17 @@ CREATE VIEW ); -- Affiche le nombre de carte par couleur dans le jeu -CREATE VIEW - cartes_jeu AS - SELECT niveau as couleur, COUNT(idcarte) as nombre - FROM carte - GROUP BY niveau - ORDER BY couleur; \ No newline at end of file +CREATE VIEW + cartes_jeu AS ( + SELECT + niveau as couleur, + COUNT(idcarte) as nombre + FROM + carte + GROUP BY + niveau + ORDER BY + couleur + ); + +COMMIT; \ No newline at end of file diff --git a/vues/statistiques_vue.php b/vues/statistiques_vue.php index b5eb8c8..b8a2394 100644 --- a/vues/statistiques_vue.php +++ b/vues/statistiques_vue.php @@ -45,6 +45,39 @@ +

les phases de tournoi (nom et année de tournoi, niveau de phase) jouées et pour lesquelles s’est qualifié + l’utilisateur courant. Le résultat sera trié sur les années selon l’ordre antéchronologique puis sur les + niveaux de phase selon l’ordre lexicographique inverse

+ + + + '; + echo $att['nom']; + echo ''; + + } + ?> + + + + + '; + foreach ($row as $valeur) { // pour parcourir chaque valeur de n-uplets + echo ''; + } + echo ''; + } + ?> + +
' . $valeur . '
+

Le nombre d’équipes classées premières des classements et dont aucun des membres n’est premier dans un classement individuel