Mission 8 : compte-rendu

Par Jordan Roverch et Mathieu Tournadre.

Présentation de la mission

Le responsable de la gestion des arbitres doit pouvoir s’authentifier grâce à une fenêtre de connexion.

Compte-rendu hebdomadaire

Semaine 1

Création du fichier MCD.

Semaine 2

Création de la page de gestion des matchs.

Semaine 3

Finalisation de la page de gestion des matchs, et création du formulaire d'ajout.

Semaine 4

Code source

form.match.gestion.php

<table> <thead> <tr> <th>n° match</th> <th>catégorie</th> <th>division</th> <th>type championnat</th> <th>date</th> <th>heure</th> <th>équipe 1</th> <th>équipe 2</th> <th>adresse salle</th> <th>arbitre P</th> <th>arbitre S</th> <th>Modif</th> <th>Suppr</th> </tr> </thead> <tbody> <?php try { $db = new PDO("mysql:host=localhost;dbname=bdarbitres", "root", ""); // Connexion à la base de données } catch(Exception $e) { die($e->getMessage()); } $entries = $db->query("SELECT M.NUM_MATCH, M.DATE_MATCH, M.HEURE_MATCH, E1.NOM_EQUIPE AS EQUIPE_1, E2.NOM_EQUIPE AS EQUIPE_2, S.ADRESSE_SALLE, CH.NUM_CHAMPIONNAT, TC.NOM_TYPE_CHAMPIONNAT, CA.NOM_CATEGORIE, DI.NOM_DIVISION, A1.NOM_ARBITRE AS ARBITRE_P, A2.NOM_ARBITRE AS ARBITRE_S FROM MATCHE M INNER JOIN EQUIPE E1 ON E1.NUM_EQUIPE=M.NUM_EQUIPE_1 INNER JOIN EQUIPE E2 ON E2.NUM_EQUIPE=M.NUM_EQUIPE_2 LEFT OUTER JOIN SALLE S ON S.NUM_SALLE=M.NUM_SALLE INNER JOIN CHAMPIONNAT CH ON CH.NUM_CHAMPIONNAT=E1.NUM_CHAMPIONNAT INNER JOIN TYPE_CHAMPIONNAT TC ON TC.NUM_TYPE_CHAMPIONNAT=CH.NUM_TYPE_CHAMPIONNAT INNER JOIN CATEGORIE CA ON CA.NUM_CATEGORIE=CH.NUM_CATEGORIE INNER JOIN DIVISION DI ON DI.NUM_DIVISION=CH.NUM_DIVISION LEFT OUTER JOIN ARBITRE A1 ON A1.NUM_ARBITRE=M.NUM_ARBITRE_P LEFT OUTER JOIN ARBITRE A2 ON A2.NUM_ARBITRE=M.NUM_ARBITRE_S"); // Cette requête récupère les différents matchs et les informations les concernant, et sauvegarde ces données dans la variable $entries. // Cette requête sera décrite plus en détail par la suite. while($line = $entries->fetch()) // Parcours des enregistrements ligne par ligne { ?> <tr> <td><?php echo $line["NUM_MATCH"]; ?></td> <td><?php echo $line["NOM_CATEGORIE"]; ?></td> <td><?php echo $line["NOM_DIVISION"]; ?></td> <td><?php echo $line["NOM_TYPE_CHAMPIONNAT"]; ?></td> <td><?php echo $line["DATE_MATCH"]; ?></td> <td><?php echo $line["HEURE_MATCH"]; ?></td> <td><?php echo $line["EQUIPE_1"]; ?></td> <td><?php echo $line["EQUIPE_2"]; ?></td> <td><?php echo $line["ADRESSE_SALLE"]; ?></td> <td><?php echo $line["ARBITRE_P"]; ?></td> <td><?php echo $line["ARBITRE_S"]; ?></td> <?php // Affichage des enregistrements dans un tableau, où les différentes données d'un enregistrement sont contenus dans les différentes cellules d'une ligne ?> <td><a href="form.match.modification.php?id=<?php echo $line["NUM_MATCH"]; ?>"><img src="../../image/modifier.png" /></a></td> <td><a href="form.match.suppression.php?id=<?php echo $line["NUM_MATCH"]; ?>"><img src="../../image/supprimer.png" /></a></td> </tr> <?php } ?> </tbody> </table> <form method="post" action="form.match.creation.php"><input type="submit" value="Ajouter" /></form>

Requête SQL :

SELECT M.NUM_MATCH, M.DATE_MATCH, M.HEURE_MATCH, E1.NOM_EQUIPE AS EQUIPE_1, E2.NOM_EQUIPE AS EQUIPE_2, S.ADRESSE_SALLE, CH.NUM_CHAMPIONNAT, TC.NOM_TYPE_CHAMPIONNAT, CA.NOM_CATEGORIE, DI.NOM_DIVISION, A1.NOM_ARBITRE AS ARBITRE_P, A2.NOM_ARBITRE AS ARBITRE_S FROM MATCHE M INNER JOIN EQUIPE E1 ON E1.NUM_EQUIPE=M.NUM_EQUIPE_1 INNER JOIN EQUIPE E2 ON E2.NUM_EQUIPE=M.NUM_EQUIPE_2 LEFT OUTER JOIN SALLE S ON S.NUM_SALLE=M.NUM_SALLE INNER JOIN CHAMPIONNAT CH ON CH.NUM_CHAMPIONNAT=E1.NUM_CHAMPIONNAT INNER JOIN TYPE_CHAMPIONNAT TC ON TC.NUM_TYPE_CHAMPIONNAT=CH.NUM_TYPE_CHAMPIONNAT INNER JOIN CATEGORIE CA ON CA.NUM_CATEGORIE=CH.NUM_CATEGORIE INNER JOIN DIVISION DI ON DI.NUM_DIVISION=CH.NUM_DIVISION LEFT OUTER JOIN ARBITRE A1 ON A1.NUM_ARBITRE=M.NUM_ARBITRE_P LEFT OUTER JOIN ARBITRE A2 ON A2.NUM_ARBITRE=M.NUM_ARBITRE_S

SELECT : on indique les différents champs que l'on veut afficher. La plupart sont précédés d'alias (ex: A.champ), parce qu'ils ne font pas partie de la même table.

INNER JOIN : c'est là que l'on lie les différentes tables et que l'on définit crée les alias utilisés dans le SELECT. Si l'INNER JOIN