显示过去7天内PHP的结果

时间:2011-07-27 03:03:01

标签: php mysql sql

我要做的是显示过去30天的文章,但我现有的代码一直给我一个mysql_fetch_assoc错误,然后追溯到我的查询

这是代码:

$sql = mysql_query("SELECT * 
                      FROM table 
                     WHERE DATE (datetime) = (CURDATE() - INTERVAL 7 DAY) 
                  ORDER BY ID DESC");

while ($runrows = mysql_fetch_array($sql))

有人能指点我如何让代码正常运行吗?这是错误

  

警告:mysql_fetch_array():提供的参数不是有效的MySQL结果资源

3 个答案:

答案 0 :(得分:2)

我认为您的'条款中不需要WHERE。而不是

WHERE DATE (datetime) = 'CURDATE() - INTERVAL 30 DAY'

尝试:

WHERE DATE (datetime) >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)

答案 1 :(得分:0)

试试这个:

$sql = mysql_query("SELECT * FROM table WHERE DATE (datetime) > DATE_SUB(CURDATE(), INTERVAL 7 DAY) ORDER BY ID DESC");

我改变了两件事:

  1. 使用DATE_SUB()减去日期。
  2. 使用>=代替=查找过去一周的所有日期。

答案 2 :(得分:0)

类似的东西:

$sql = mysql_query("SELECT * 
                    FROM table 
                    WHERE DATE BETWEEN '" . date('Y-m-d',strtotime('now')) . "' AND '" . date('Y-m-d',strtotime('-30 days')) . "' 
                    ORDER BY ID DESC"
);

应该得到这样的东西:

SELECT * 
FROM table 
WHERE DATE BETWEEN '2011-07-26' AND '2011-06-26' 
ORDER BY ID DESC

请注意,date('Y-m-d')是在数据库中记录日期的方式。所以改变它就像你的数据库一样。