Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示过去7天的结果_Php_Mysql_Sql - Fatal编程技术网

Php 显示过去7天的结果

Php 显示过去7天的结果,php,mysql,sql,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 (

我想做的是显示过去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\u fetch\u array():提供的参数不是有效的mysql结果资源

试试这个:

$sql = mysql_query("SELECT * FROM table WHERE DATE (datetime) > DATE_SUB(CURDATE(), INTERVAL 7 DAY) ORDER BY ID DESC");
我改变了两件事:

  • 使用
    DATE\u SUB()
    减去日期
  • 使用
    =
    而不仅仅是
    =
    查找过去一周的所有日期

  • 我认为您不需要在
    WHERE
    子句上添加
    ”。而不是

    尝试:

    比如:

    $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')
    是在数据库中记录日期的方式。因此,将其更改为与数据库类似的方式。

    请告诉我们您遇到的错误,好吗?该警告意味着您的查询失败,请将“mysql_query(…);”更改为“mysql_query(…)或die(mysql_error());”以获取更有意义的信息。我尝试过,但它仍然会给出相同的mysql fetch assoc error数据库中的日期格式是什么?通过在日期之间添加“”编辑了代码
    $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