2011-01-21 4 views
10

Ho una tabella in un database mysql con 3 colonne: id, value e tstamp. La mia colonna tstamp è in formato TIMESTAMP, ovvero: 2011-01-21 08:32:22Gruppo PHP MySQL per giorno e totale per ogni giorno

Quello che spero di ottenere è utilizzare PHP per visualizzare un'analisi di un totale per ogni giorno. Non riesco a pensare a un modo per interrogare la tabella, in pseudo codice: seleziona * dal gruppo di tabelle di giorno (parte di tstamp) e aggiungi tutti i numeri dalla colonna del valore per ogni giorno "

È possibile ?

Grazie mille

EDIT:

ho questa query in combo con il codice della risposta accettata:

$sql = "select date(tstamp), sum(".$column.") from mash group by date(tstamp)"; 
      $result = mysql_query($sql); 
       while($row = mysql_fetch_array($result)){ 
         $strXML .= "<set name='".date("G:i:s", strtotime($row["date"])). "' value='".$row["sum"]."' color='AFD8F8' />"; 
       } 

Come si accede t i valori dell'array in $ row correttamente?

risposta

19

Se si desidera MySQL per restituire voi il valore che cerchi in una query è possibile utilizzare:

select date(tstamp), sum(value) 
    from your_table 
group by date(tstamp); 
+0

@ benhowdle89 Penso $ row [0] conterrà la data e $ row [1] conterrà il valore sommato. –

+0

Dai un'occhiata a mysql_fetch_assoc (http://www.php.net/manual/en/function.mysql-fetch-assoc.php) se vuoi usare nomi invece di indici di array mentre esporti nel tuo esempio di codice. Inoltre, un print_r ($ row) ti aiuterà a eseguire il debug/ispezionare cosa c'è all'interno dell'array che stai ricevendo. –

+0

Certo, grazie per questo! – benhowdle89

1

Come sull'utilizzo di questa

DATE_FORMAT(datestamp , '%Y') as year //for grouping over year 
DATE_FORMAT(datestamp , '%Y-%m') as month //for grouping over month 
DATE_FORMAT(datestamp , '%Y-%m-%d') as day //for grouping over day