2011-01-21 35 views
10

Tôi có một bảng trong cơ sở dữ liệu mysql với 3 cột: id, value và tstamp. Cột tstamp của tôi ở định dạng TIMESTAMP, tức là: 2011-01-21 08:32:22MySQL PHP nhóm theo ngày và tổng số cho mỗi ngày

Điều tôi hy vọng đạt được là sử dụng PHP để hiển thị phân tích tổng số cho mỗi ngày. Tôi không thể nghĩ ra cách để truy vấn bảng, trong mã giả: chọn * từ nhóm bảng theo ngày (một phần của tstamp) và thêm tất cả các số cùng nhau từ cột giá trị cho mỗi ngày "

Điều này có khả thi không ?

Thanks a lot

EDIT:

tôi có truy vấn này trong combo với mã câu trả lời chấp nhận của:

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

làm thế nào để tôi truy cập vào t giá trị mảng trong hàng $ chính xác?

Trả lời

19

Nếu bạn muốn MySQL để trả lại cho bạn những giá trị mà bạn đang tìm kiếm trong một truy vấn bạn có thể sử dụng:

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

@ benhowdle89 Tôi nghĩ $ row [0] sẽ chứa ngày và $ row [1] sẽ chứa giá trị tổng hợp. –

+0

Hãy xem mysql_fetch_assoc (http://www.php.net/manual/en/function.mysql-fetch-assoc.php) nếu bạn muốn sử dụng tên thay vì chỉ mục mảng như bạn đang trưng bày trong mẫu mã của bạn. Ngoài ra, một print_r ($ row) sẽ giúp bạn gỡ lỗi/kiểm tra những gì bên trong mảng mà bạn đang nhận được. –

+0

Tất nhiên, cảm ơn vì điều này! – benhowdle89

1

Làm thế nào về việc sử dụng này

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 
Các vấn đề liên quan