codice:
<?php
$fatturati = ['2016'=>array_fill_keys(range(1,12),0),
'2017'=>array_fill_keys(range(1,12),0),
'2018'=>array_fill_keys(range(1,12),0),
'2019'=>array_fill_keys(range(1,12),0),
'2020'=>array_fill_keys(range(1,12),0),
];
$query =
"SELECT
DATE_FORMAT(data, \"%c-%Y\") as meseanno
, SUM(totale) as totalemese
FROM `commesse`
WHEREYEAR(data) BETWEEN2016AND2020
GROUP BY meseanno UNIONSELECT
DATE_FORMAT(data, \"13-%Y\") as meseanno
, SUM(totale) as totalemese
FROM `commesse`
WHEREYEAR(data) BETWEEN2016AND2020
GROUP BY meseanno";
$result = $mysqli->query($query);
while($data = mysqli_fetch_assoc($result)){
$d = explode('-', $data['meseanno']); // in $d[0] ho il mese, in $d[1] l'anno;
$fatturati[$d[1]][$d[0]] = $data['totalemese'];
}
// CREO UN ARRAY DI MESI
$mesi = [1=>'Gennaio', 2=>'Febbraio', 3=>'Marzo', 4=>'Aprile', 5=>'Maggio', 6=>'Giugno', 7=>'Luglio', 8=>'Agosto', 9=>'Settembre', 10=>'Ottobre', 11=>'Novembre', 12=>'Dicembre', 13=>'Totale'];
?>
<tableclass='table table-striped > fatturato'>
<thead>
... inserisco le <tr>
</thead>
<tbody>
<?php
$euro = "€";
$anni = array_keys($fatturati);
for($i=1; $i<=13;$i++){
$tr = "<tr>";
if ($i == 13) {
$tr = '<tr style="color:yellow; background-color:black; font-weight: bold; text-align:left;">';
}
echo$tr.'<td>'.$mesi[$i].'</td>';
foreach($anni as $anno)
{
echo'<td>'.$euro.' '.$fatturati[$anno][$i].'</td>';
}
echo"</tr>";
}
?>
</tbody>
</table>