2011-01-21 13 views
10

Tengo una tabla en una base de datos mysql con 3 columnas: id, value y tstamp. Mi columna tstamp está en formato TIMESTAMP, es decir: 2011-01-21 08:32:22MySQL PHP grupo por día y total por cada día

Lo que espero lograr es utilizar PHP para mostrar un desglose de un total de cada día. No puedo pensar en una forma de consultar la tabla, en pseudocódigo: seleccione * del grupo de la tabla por día (parte de tstamp) y agregue todos los números desde la columna de valor para cada día "

¿Esto va a ser posible? ?

Muchas gracias

EDIT:

tengo esta consulta en combinación con el código de la respuesta aceptada:

$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' />"; 
       } 

¿Cómo accedo t ¿Los valores de la matriz en $ row son correctos?

Respuesta

19

Si desea MySQL para que devuelva el valor que busca en una consulta que puede utilizar:

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

@ benhowdle89 creo $ fila [0] contendrá la fecha y $ row [1] contendrá el valor sumado. –

+0

Eche un vistazo a mysql_fetch_assoc (http://www.php.net/manual/en/function.mysql-fetch-assoc.php) si desea usar nombres en lugar de índices de matriz como lo está exponiendo en su ejemplo de código. Además, print_r ($ row) lo ayudará a depurar/inspeccionar qué hay dentro de la matriz que está recibiendo. –

+0

Por supuesto, ¡gracias por esto! – benhowdle89

1

Cómo sobre el uso de este

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