Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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 按日期查询mysql_Php_Mysql - Fatal编程技术网

Php 按日期查询mysql

Php 按日期查询mysql,php,mysql,Php,Mysql,我试图按日期查询mysql,我有一个变量$today=dateY-m-d 我想用它来从我上一年的“posts”表中获取“post_content”。然后,我将使用php回显这些数据 我到底要怎么做?也许需要一段时间来更改日期并查询它?我从表中找到了select字段order by DATEFILD,并设想这样一个语句存在,它带有一个参数,允许我们按年份查询我的posts表 为了澄清这一点,我希望每年查询一次帖子,就像时间跳跃一样 我已经用它运行了大约两周了,非常感谢您的帮助 **编辑当前代码 $

我试图按日期查询mysql,我有一个变量$today=dateY-m-d

我想用它来从我上一年的“posts”表中获取“post_content”。然后,我将使用php回显这些数据

我到底要怎么做?也许需要一段时间来更改日期并查询它?我从表中找到了select字段order by DATEFILD,并设想这样一个语句存在,它带有一个参数,允许我们按年份查询我的posts表

为了澄清这一点,我希望每年查询一次帖子,就像时间跳跃一样

我已经用它运行了大约两周了,非常感谢您的帮助

**编辑当前代码

$sql = "SELECT * FROM posts
            WHERE date > CURDATE() - INTERVAL 1 YEAR
            ORDER BY date DESC";
            // SELECT * FROM conversions WHERE date = CURRENT_DATE() - INTERVAL 1 DAY AND `user_id` = '$user_id';
            $result = $dbc->query($sql);




            if ($result->num_rows > 0) {
                $i=1;
                    // output data of each row
                    while($row = $result->fetch_assoc()) {
                        echo "<li>";
                        echo "<p>".$row['post_date']."</p>";
                        // $clientid.$i =
                        echo "<h3>".$row["post_content"]."</h3>";
                        echo "</li>";
                    }//end while
                $i++;
            } else {
            echo "0 results found in user database!";
            }

从您评论中的附加信息来看,您似乎希望在SQL中使用一年的时间间隔来解决这个问题,并且可能要按降序日期排序

SELECT * FROM conversions
WHERE post_date > CURDATE() - INTERVAL 1 YEAR
ORDER BY post_date DESC

php代码似乎混淆了WHERE子句中显示的列名date和fetch_assoc子句中显示的列名post_date。你真的有日期列和发布日期列吗

而且,WHERE子句中的不等式看起来可能相差1

如果您想获取从今天开始的最近一年,则

WHERE date >= CURDATE() - INTERVAL 1 YEAR
在那之前的一年,它是

WHERE date >= CURDATE() - INTERVAL 2 YEAR
  AND date <  CURDATE() - INTERVAL 1 YEAR
类似地,当前日历年之前的日历年也是这样做的

WHERE date >= DATE_FORMAT(CURDATE(), '%Y-01-01') - INTERVAL 1 YEAR
  AND date <  DATE_FORMAT(CURDATE(), '%Y-01-01')

这是我第一次发现它,它可能会很有成效。。。从转换中选择*,其中日期=当前日期-间隔1天;到目前为止你做了什么?还有,你的问题不是很清楚$今天会给你今天的日期。那么,您想根据$today's year查找上一年的帖子吗?我目前正在尝试运行此查询:从转换中选择*from date=CURRENT_date-INTERVAL 1 DAY和user_id='$user_id'$today引用当前日期,以便我可以,是的,根据$today's Years查找上一年的帖子我肯定这就是我使用的,但是我得到了,注意:在我的while循环*代码中使用$result试图获取非对象的属性,在上面的原始帖子中,我不明白为什么我不能工作,尽管使用while循环,就像我以前使用这个新代码一样…等等。。。我需要编辑一年前的帖子!它是空的!我把日期和邮寄日期搞混了。谢谢你的帮助!谢谢你抓住我的矛盾,我确实混淆了日期和发布日期。
WHERE date >= DATE_FORMAT(CURDATE(), '%Y-01-01') - INTERVAL 1 YEAR
  AND date <  DATE_FORMAT(CURDATE(), '%Y-01-01')