Ciao a tutti, oggi non sono qui per chiedere ma per mettere a disposizione una soluzione per poter mettere in colonna dei dati estrapolati da mysql in una griglia di 12 mesi, incolonnando i dati nel mese corrispondente, avevo bisogno di risolvere questo problema, una volta riuscito lo metto a vostra disposizione, si può modificare se servisse anche per i giorni della settimana.
Cerco di commentarlo:
Codice PHP:
<table width="812" height="42" border="1" >
<tr>
<th colspan="col" width="15" height="10">Gennaio</th>
<th colspan="col" width="15" height="10">Febbraio</th>
<th colspan="col" width="15" height="10">Marzo</th>
<th colspan="col" width="15" height="10">Aprile</th>
<th colspan="col" width="15" height="10">Maggio</th>
<th colspan="col" width="15" height="10">Giugno</th>
<th colspan="col" width="15" height="10">Luglio</th>
<th colspan="col" width="15" height="10">Agosto</th>
<th colspan="col" width="15" height="10">Settembre</th>
<th colspan="col" width="15" height="10">Ottobre</th>
<th colspan="col" width="15" height="10">Novembre</th>
<th colspan="col" width="15" height="10">Dicembre</th>
</tr>
una volta creata la griglia dei mesi, devo mettere il valore sotto il mese
corrispondente, questo era il mio problema.
Codice PHP:
$totale=0;
$col=0;
$select="
SELECT sum(prezzo) as importo, anno ,mese
FROM nome tabella
WHERE campo = '$variabile'
GROUP BY anno, mese
ORDER BY anno,mese ASC";
// connessione a mysql
$query = $data->query($select);
while ($row = mysql_fetch_array($query))
{
// memorizzo il campo importo in variabile $totale
$totale =$row['importo'];
// lo stesso su $mese metto il valore intero (se gennaio fosse 01 darebbe problemi)
$mese =intval($row['mese']);
// metto i valori in array
$tot[$mese] = $totale ;
}
for ($col=1; $col<=12; $col++) {
if (!isset($tot[$col])) // metto a zero se il mese non c'è
{ $tot[$col] =0;}
echo '<td>'.$tot[$col].'</td>';
}
echo '</tr></table>';
Spero possa esservi utile.
CIao