Commit 93ae7d59 authored by JonathanMM's avatar JonathanMM

Création d'une page de statistique

parent 9eb1403e
......@@ -38,6 +38,7 @@
</select>
<input type="submit" value="Filtrer" />
</form>
<a href="stats.php">Voir plus de statistiques &gt;</a>
</div>
<div id="carteArea"></div>
</div>
......
<?php
require_once('config.php');
include_once('functions.php');
require_once('libs/Smarty.class.php');
$smarty = new Smarty();
$periodeEnCours = new DateTime("-1day");
$h = intval($periodeEnCours->format('G'));
$periodeEnCours->setTime($h - ($h % 6), 0);
$filtreDate = $periodeEnCours->format('Y-m-d H:i:s');
$filtreDate = '2018-01-24 00:00:00';
//On récupère toutes les resume
$requete = $pdo->query('SELECT * FROM resumeStatus WHERE date >= "'.$filtreDate.'" AND duree = 360 ORDER BY code, date ASC');
$resumes = $requete->fetchAll();
//On parcourt les résumes, et on agglomère par station
$stations = array();
$minDate = null;
$maxDate = null;
foreach($resumes as $resume)
{
$codeStation = $resume['code'];
if(!isset($stations[$codeStation]))
$stations[$codeStation] = array('pris' => 0, 'rendu' => 0);
$stations[$codeStation]['pris'] += $resume['nbBikePris'] + $resume['nbEBikePris'];
$stations[$codeStation]['rendu'] += $resume['nbBikeRendu'] + $resume['nbEBikeRendu'];
if($minDate == null || $minDate > $resume['date'])
$minDate = $resume['date'];
if($maxDate == null || $maxDate < $resume['date'])
$maxDate = $resume['date'];
}
$minDateObj = new DateTime($minDate);
$maxDateObj = new DateTime($maxDate);
$maxDateObj->add(new DateInterval('PT6H')); //On ajoute 6 heures pour avoir la fin de la période
$smarty->assign(array(
'minDate' => $minDateObj->format('d/m à H:i'),
'maxDate' => $maxDateObj->format('d/m à H:i')
));
//On fait les stats sur les stations
$stationsSansMouvement = 0;
$totalPris = 0;
$totalRendu = 0;
foreach($stations as $code => $stats)
{
if($stats['pris'] + $stats['rendu'] == 0)
$stationsSansMouvement++;
else
{
$totalPris += $stats['pris'];
$totalRendu += $stats['rendu'];
}
}
$smarty->assign(array(
'totalPris' => $totalPris,
'totalRendu' => $totalRendu,
'totalStation' => count($stations),
'stationsSansMouvement' => $stationsSansMouvement
));
$smarty->display('stats.tpl');
exit();
?>
\ No newline at end of file
{include file='header.tpl'}
<header>
<h1>Vélib Stats (site non officiel) - Statistiques</h1>
<nav>
<a href="index.php">&lt; Retour à l'accueil</a>
</nav>
</header>
<div id="content">
<p>Sur la dernière journée ({$minDate}{$maxDate}) :</p>
<ul>
<li>Au moins {$totalPris} vélos ont été empruntés</li>
<li>Au moins {$totalRendu} vélos ont été rendus</li>
<li>Nombre de stations sans mouvement : {$stationsSansMouvement}, sur un total de {$totalStation} stations.</li>
</ul>
<p>Les nombres de vélos empruntés et rendus sont obtenu en comparant deux relevés d'état d'une station.
Ainsi, le système considèrera de la même façon si deux vélos ont été pris à une station que si dans la même minute
quatres vélos ont été pris et deux rendus. Les nombres ainsi obtenus ne sont que des minimums.<br />
Le nombre de stations ne différencie pas les stations en travaux des stations ouvertes.
</p>
{include file="credits.tpl"}
</div>
{include file="footer.tpl"}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment