2013-09-25 190 views
0

我有這個while循環得到不同日期:PHP - 在while循環

<?php 

      $q=mysql_query("SELECT * FROM xeon_stats_clicks WHERE user='".$userdata['username']."' AND typ='4' ORDER BY data DESC LIMIT 8") or die(mysql_error()); 
      while($clickData=mysql_fetch_assoc($q)): 

       $r=mysql_query("SELECT sum(value) FROM `xeon_stats_clicks` WHERE user='".$userdata['username']."' AND typ='3' AND data='".date("Y/m/d")."' ORDER BY data DESC LIMIT 8"); 
      echo mysql_result($r, 0); 



     endwhile; 

      ?> 

這只是給我的價值行的總和今天才。我怎樣才能獲得最近7天的數據?

+0

子句之間使用..今天的日期和7天在日期之前 –

+0

'> = CURDATE() - INTERVAL 1 WEE',如果您不想使用實際的DATE/DATETIME/TIMESTAMP列。 – Wrikken

+0

你能舉個例子嗎? – oliverbj

回答

0

沒有需要指定特定的日期,它會給你在這個特定的日期,另一條評論建議選用'之間',但我喜歡使用的 '>' 僅在這種情況下, 例如:

SELECT SUM(值)FROM xeon_stats_clicks WHERE 用戶= $用戶數據[ '用戶名']和類型= '3' 和日期> CURDATE() - 。 INTERVAL 1周ORDER BY日期DESC LIMIT 8"

0
SELECT SUM(value), `data` 
FROM table 
WHERE (`data` BETWEEN CURDATE() AND CURDATE() - INTERVAL 1 WEEK) 
GROUP BY `data` 

例如。

嘗試另一種WHERE語句:

DATEDIFF(CURDATE(), CURDATE() - INTERVAL 1 WEEK) = 7 

,並顯示您的where語句

+0

這不適合我,交換兩個BETWEEN參數 – hynner

+0

交換兩個BETWEEN參數?我不明白這一點。 –

+0

不能讓這個工作。 – oliverbj