2013-09-25 192 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