1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
<?php
//---- DATABASE
define('DB_HOST', '127.0.0.1');
define('DB_NAME', 'tests');
define('DB_USER', 'root');
define('DB_PWD' , '');
$bdd = new PDO('mysql:host='.DB_HOST.'; dbname='.DB_NAME.';charset=UTF8',DB_USER,DB_PWD, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$query = "SELECT dateexam, nom, note, idexam FROM `exams` order by nom, dateexam, idexam";
$prepared = $bdd->prepare($query);
$prepared->execute();
//--- parcours des données
$arrNoms = array();
$arrDates = array();
$arrExamen = array();
while (list($dateexam, $nom, $note, $idexam) = $prepared->fetch()) {
if (!isset($arrNoms[$nom])) $arrNoms[$nom] = $nom;
if (!isset($arrDates[$dateexam.$idexam])) $arrDates[$dateexam.$idexam] = $dateexam.'/'.$idexam;
$arrExamen[$nom][$dateexam.$idexam] = $note;
}
//--- Tri des abscisses et ordonnées
ksort($arrNoms);
ksort($arrDates);
//--- on comble les trous s'il y en a
$arrResultat = array();
foreach ($arrDates as $keyDates => $valDate) {
foreach ($arrNoms as $keyNoms => $valNom) {
$arrResultat[$keyNoms][$keyDates] = isset($arrExamen[$keyNoms][$keyDates]) ? $arrExamen[$keyNoms][$keyDates] : '-';
}
}
//--- Création du tableau
$tableau = array();
$tableau[] = "<table style='text-align: center;' border=1 >";
$tableau[] = "<tr ><td></td><td>".implode("</td><td>",$arrDates)."</td></tr>";
foreach ($arrNoms as $keyNoms => $indexNoms) {
$tableau[] = "<tr><td>$keyNoms</td><td>".implode("</td><td>",$arrResultat[$keyNoms])."</td></tr>";
}
$tableau[] = "</table>";
print implode(PHP_EOL,$tableau);
?> |
Partager