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
| // On imagine qu'on a un classe qui gère la DB
$db = new ClassQuiGereLesConnexionsDB();
// On récupère la date minimale
$sql = "SELECT MIN(date_vente) AS min_date_vente FROM clients__vente";
$min_date_vente = $db->query($sql)->get_row()->min_date_vente;
$min_year = date('Y', strtotime($min_date_vente));
// On va boucler de maintenant à la plus petite année
$montants = [];
for ($i = date('Y'); $i >= $min_year; $i--) {
$sql = "SELECT SUM(total_ht_vente) as Total FROM clients__vente WHERE date_vente BETWEEN '2018-09-01' AND '2019-08-31';";
$sqlData = [
($i - 1) . '-09-01',
$i . '-08-31',
];
// On exécute notre requête préparée, avec les dates correctes
$total_ht_vente = $db->exec($db->prepare($sql, $sqlData))->get_row()->Total;
// On ajoute tout dans $montants, comme ça on garde l'interval aussi :)
$montants[] = [
'total' => $total_ht_vente,
'interval' => $sqlData,
];
}
// Affichage des résultats
echo PHP_EOL . '<pre>$montants: ' . print_r($montants, true) . '</pre>' . PHP_EOL; |