Update partie_controleur.php and modele.php files to add functions for retrieving upcoming and ongoing game instances, and completed game instances.

This commit is contained in:
2024-04-12 13:24:56 +02:00
parent 0564e2ae8c
commit d7ba89b6da
3 changed files with 292 additions and 21 deletions

View File

@@ -1,3 +1,28 @@
<?php if (isset($_POST['boutonAfficher'])) { <?php
$partie = get_infos_instances('partie');
} ?> $message = "";
$partiestotal = get_parties_venir_cours();
if ($partiestotal == null || count($partiestotal) == 0) {
$message .= "Aucune partie n'est disponible!";
} else {
$parties = get_infos_instances('partie');
$parties_a_venir = get_infos_instances('parties_a_venir');
$parties_en_cours = get_infos_instances('parties_en_cours');
}
$messageterminee = "";
$partiesterm = get_parties_terminees();
if ($partiesterm == null || count($partiesterm) == 0) {
$messageterminee .= "Aucune partie n'est disponible!";
} else {
$parties_terminees = get_infos_instances('parties_terminees');
$parties_terminees_recentes = get_infos_instances('parties_terminees_recentes');
$parties_terminees_rapides = get_infos_instances('parties_terminees_rapides');
}
?>

View File

@@ -81,6 +81,63 @@ function get_statistiques()
]; ];
} }
function get_parties_venir_cours()
{
global $connexion;
$requete_parties = "SELECT * FROM partie";
$requete_parties_a_venir = "SELECT * FROM parties_a_venir";
$requete_parties_en_cours = "SELECT * FROM parties_en_cours";
$res_parties = mysqli_query($connexion, $requete_parties);
$res_parties_a_venir = mysqli_query($connexion, $requete_parties_a_venir);
$res_parties_en_cours = mysqli_query($connexion, $requete_parties_en_cours);
if ($res_parties === FALSE || $res_parties_a_venir === FALSE || $res_parties_en_cours === FALSE) {
echo "Erreur d'exécution de la requête SQL : " . mysqli_error($connexion);
return null;
}
$parties = mysqli_fetch_all($res_parties, MYSQLI_ASSOC);
$parties_a_venir = mysqli_fetch_all($res_parties_a_venir, MYSQLI_ASSOC);
$parties_en_cours = mysqli_fetch_all($res_parties_en_cours, MYSQLI_ASSOC);
return [
'parties' => $parties,
'parties_a_venir' => $parties_a_venir,
'parties_en_cours' => $parties_en_cours
];
}
function get_parties_terminees()
{
global $connexion;
$requete_parties_terminees = "SELECT * FROM parties_terminees";
$requete_parties_terminees_recentes = "SELECT * FROM parties_terminees_recentes";
$requete_parties_terminees_rapides = "SELECT * FROM parties_terminees_rapides";
$res_parties_terminees = mysqli_query($connexion, $requete_parties_terminees);
$res_parties_terminees_recentes = mysqli_query($connexion, $requete_parties_terminees_recentes);
$res_parties_terminees_rapides = mysqli_query($connexion, $requete_parties_terminees_rapides);
if ($res_parties_terminees === FALSE || $res_parties_terminees_recentes === FALSE || $res_parties_terminees_rapides === FALSE) {
echo "Erreur d'exécution de la requête SQL : " . mysqli_error($connexion);
return null;
}
$parties_terminees = mysqli_fetch_all($res_parties_terminees, MYSQLI_ASSOC);
$parties_terminees_recentes = mysqli_fetch_all($res_parties_terminees_recentes, MYSQLI_ASSOC);
$parties_terminees_rapides = mysqli_fetch_all($res_parties_terminees_rapides, MYSQLI_ASSOC);
return [
'parties_terminees' => $parties_terminees,
'parties_terminees_recentes' => $parties_terminees_recentes,
'parties_terminees_rapides' => $parties_terminees_rapides
];
}
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
/////// Informations (structure et contenu) d'une table ////////// /////// Informations (structure et contenu) d'une table //////////
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
@@ -146,6 +203,9 @@ function get_infos_instances($nomTable)
$requete = "SELECT * FROM $nomTable"; $requete = "SELECT * FROM $nomTable";
$res = mysqli_query($connexion, $requete); $res = mysqli_query($connexion, $requete);
if ($res === false) {
die('Erreur SQL : ' . mysqli_error($connexion));
}
// extraction des informations sur le schéma à partir du résultat précédent // extraction des informations sur le schéma à partir du résultat précédent
$infos_atts = mysqli_fetch_fields($res); $infos_atts = mysqli_fetch_fields($res);

View File

@@ -5,7 +5,7 @@
<form class="bloc_commandes" method="post" action="#"> <form class="bloc_commandes" method="post" action="#">
<label for="typeVueTable">Voir Parties</label> <label for="boutonAfficher">Voir Parties</label>
<?php <?php
$selection = 1; $selection = 1;
if (isset($_POST['selectparty'])) { if (isset($_POST['selectparty'])) {
@@ -19,32 +19,218 @@
} }
echo '>Partie n°' . $i . '</option>'; echo '>Partie n°' . $i . '</option>';
} }
echo '</select>';
?> ?>
<input type="submit" name="boutonAfficher" value="Afficher" /> <input type="submit" name="boutonAfficher" value="Afficher" />
<input type="submit" name="boutonAfficherAVenir" value="A venir" />
<input type="submit" name="boutonAfficherEnCours" value="En cours" />
<tbody>
<?php
if (isset($_POST['boutonAfficher'])) {
$donnees = ['idpartie', 'date_partie', 'horaire'];
$parties = $parties['instances'][(int) $_POST["selectparty"] - 1];
$url = 'https://bdw.univ-lyon1.fr/p2203977/DeezCycle/vues/details_vue.php?';
foreach ($donnees as $donnee) {
$url .= $donnee . '=' . $parties[$donnee] . '&';
}
$url .= 'taille=12';
echo '<a href="' . $url . '" target="_blank">' . "Afficher les détails de la partie" . '</a>';
} else {
echo "<h1>Selectionnez une partie !</h1>";
}
?>
<?php if ($message != "") { ?>
<p class="notification">
<?= $message ?>
</p>
<?php } else {
if (isset($_POST['boutonAfficherAVenir'])) { ?>
<table class="table_resultat">
<thead>
<tr>
<?php
//var_dump($resultats);
foreach ($parties_a_venir['schema'] as $att) { // pour parcourir les attributs
echo '<th>';
echo $att['nom'];
echo '</th>';
}
?>
</tr>
</thead>
<tbody>
<?php
if (empty($parties_a_venir['instances'])) {
echo '<tr><td colspan="' . count($parties_a_venir['schema']) . '">Aucune partie à venir</td></tr>';
} else {
foreach ($parties_a_venir['instances'] as $row) { // pour parcourir les n-uplets
echo '<tr>';
foreach ($row as $valeur) { // pour parcourir chaque valeur de n-uplets
echo '<td>' . $valeur . '</td>';
}
echo '</tr>';
}
}
?>
</tbody>
</table>
<?php } ?>
<?php if (isset($_POST['boutonAfficherEnCours'])) { ?>
<table class="table_resultat">
<thead>
<tr>
<?php
//var_dump($resultats);
foreach ($parties_en_cours['schema'] as $att) { // pour parcourir les attributs
echo '<th>';
echo $att['nom'];
echo '</th>';
}
?>
</tr>
</thead>
<tbody>
<?php
if (empty($parties_en_cours['instances'])) {
echo '<tr><td colspan="' . count($parties_en_cours['schema']) . '">Aucune partie en cours</td></tr>';
} else {
foreach ($parties_en_cours['instances'] as $row) { // pour parcourir les n-uplets
echo '<tr>';
foreach ($row as $valeur) { // pour parcourir chaque valeur de n-uplets
echo '<td>' . $valeur . '</td>';
}
echo '</tr>';
}
}
?>
</tbody>
</table>
<?php }
} ?>
</tbody>
</form> </form>
<tbody>
<?php
if (isset($_POST['boutonAfficher'])) {
$donnees = ['idpartie', 'date_partie', 'horaire'];
$parties = $partie['instances'][(int) $_POST["selectparty"] - 1];
$url = 'https://bdw.univ-lyon1.fr/p2203977/DeezCycle/vues/details_vue.php?'; <form class="bloc_commandes" method="post" action="#">
foreach ($donnees as $donnee) { <label>Rechercher une partie terminée</label>
$url .= $donnee . '=' . $parties[$donnee] . '&'; <select id="selectpartieterminee" name="selectpartyterminee">
} <option value="toutes">Toutes les parties terminées</option>
$url .= 'taille=12'; <option value="recentes">Les 50 parties les plus récentes</option>
<option value="rapides">Les 50 parties plus rapides par taille de plateau</option>
</select>
echo '<a href="' . $url . '">' . "Afficher les détails de la partie" . '</a>'; <input type="submit" name="boutonAfficherPartiesTerminees" value="Afficher" />
exit;
} else {
echo "<h1>Selectionnez une partie !</h1>";
}
?>
</tbody>
<tbody>
<?php if ($message != "") { ?>
<p class="notification">
<?= $messageterminee ?>
</p>
<?php } else {
if (isset($_POST['boutonAfficherPartiesTerminees'])) {
$selectedOption = $_POST['selectpartyterminee'];
if ($selectedOption == 'toutes') { ?>
<table class="table_resultat">
<thead>
<tr>
<?php
//var_dump($resultats);
foreach ($parties_terminees['schema'] as $att) { // pour parcourir les attributs
echo '<th>';
echo $att['nom'];
echo '</th>';
}
?>
</tr>
</thead>
<tbody>
<?php
if (empty($parties_terminees['instances'])) {
echo '<tr><td colspan="' . count($parties_terminees['schema']) . '">Aucune partie terminée</td></tr>';
} else {
foreach ($parties_terminees['instances'] as $row) { // pour parcourir les n-uplets
echo '<tr>';
foreach ($row as $valeur) { // pour parcourir chaque valeur de n-uplets
echo '<td>' . $valeur . '</td>';
}
echo '</tr>';
}
} ?>
</tbody>
</table>
<?php } elseif ($selectedOption == 'recentes') { ?>
<table class="table_resultat">
<thead>
<tr>
<?php
//var_dump($resultats);
foreach ($parties_terminees_recentes['schema'] as $att) { // pour parcourir les attributs
echo '<th>';
echo $att['nom'];
echo '</th>';
}
?>
</tr>
</thead>
<tbody>
<?php
if (empty($parties_terminees_recentes['instances'])) {
echo '<tr><td colspan="' . count($parties_terminees_recentes['schema']) . '">Aucune partie terminée récente</td></tr>';
} else {
foreach ($parties_terminees_recentes['instances'] as $row) { // pour parcourir les n-uplets
echo '<tr>';
foreach ($row as $valeur) { // pour parcourir chaque valeur de n-uplets
echo '<td>' . $valeur . '</td>';
}
echo '</tr>';
}
} ?>
</tbody>
</table>
<?php } else { ?>
<table class="table_resultat">
<thead>
<tr>
<?php
//var_dump($resultats);
foreach ($parties_terminees_rapides['schema'] as $att) { // pour parcourir les attributs
echo '<th>';
echo $att['nom'];
echo '</th>';
}
?>
</tr>
</thead>
<tbody>
<?php
if (empty($parties_terminees_rapides['instances'])) {
echo '<tr><td colspan="' . count($parties_terminees_rapides['schema']) . '">Aucune partie terminée rapide</td></tr>';
} else {
foreach ($parties_terminees_rapides['instances'] as $row) { // pour parcourir les n-uplets
echo '<tr>';
foreach ($row as $valeur) { // pour parcourir chaque valeur de n-uplets
echo '<td>' . $valeur . '</td>';
}
echo '</tr>';
}
}
?>
</tbody>
</table>
<?php }
}
} ?>
</tbody>
</form>
</div> </div>