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,我正在创建一个web应用程序,如果用户单击名为“WEEK”的链接,页面将显示该周提交的所有帖子。还有一个选项可以查看本月提交的所有帖子。posts表中有一列名为post_date,其中日期的存储格式为:YYYY-MM-DD 我的问题:我不知道如何生成本周和本月提交的帖子。 我可以成功选择在当前日期提交的帖子,如下所示: $today = date("Y-m-d"); // This is the format of the DATE column named post_date in the p

我正在创建一个web应用程序,如果用户单击名为“WEEK”的链接,页面将显示该周提交的所有帖子。还有一个选项可以查看本月提交的所有帖子。posts表中有一列名为post_date,其中日期的存储格式为:YYYY-MM-DD

我的问题:我不知道如何生成本周和本月提交的帖子。

我可以成功选择在当前日期提交的帖子,如下所示:

$today = date("Y-m-d"); // This is the format of the DATE column named post_date in the posts table.
if($_GET['when'] == "today")
{
$when = $today;
}
else if ($_GET['when'] == "week")
{
$when = // I don't know what goes here if I want to generate posts submitted this week
}
else if ($_GET['when'] == "month")
{
$when = // I don't know what goes here if I want to generate posts submitted this month
}
// I have already connected to the database and selected the table.
$query = "SELECT * FROM posts WHERE post_date = '$when'";
$result = mysql_query($query);
// After this I Generate the Posts Using WHILE loop and mysql_fetch_array
如果URL中的$_GET['when']的值为“today”,则脚本工作正常,并生成“today”提交的帖子。但我不知道如何选择本周和本月。我已经完成了我的家庭作业:我在谷歌上搜索了StackOverflow,也搜索了匹配的问题,但是有一些问题,比如上周的数据,代码很简单,不适合我的情况。例如,有一个选项可以通过使用
周($today,1)
选择第一、第二、第三和第四周(我不知道它是否有效,但我想生成在当前周和月提交的帖子)


提前感谢。

通过稍微修改代码,您可以使用SQL实现每周和每月的问题

关于:,这可能是您的解决方案:

SELECT *
FROM   posts
WHERE  YEARWEEK(post_date) = YEARWEEK(NOW())
第二个可能更复杂一些:

SELECT *
FROM   posts
WHERE  YEAR(post_date) = YEAR(NOW())
AND    MONTH(post_date) = MONTH(NOW())

我希望,我可以帮助您。

好吧,通过稍微修改代码,您可以使用SQL实现每周和每月的问题

关于:,这可能是您的解决方案:

SELECT *
FROM   posts
WHERE  YEARWEEK(post_date) = YEARWEEK(NOW())
第二个可能更复杂一些:

SELECT *
FROM   posts
WHERE  YEAR(post_date) = YEAR(NOW())
AND    MONTH(post_date) = MONTH(NOW())
我希望,我能帮助你。

有很多人可以为你做这样的事情

SELECT * FROM posts
WHERE
   WEEK(post_date) = WEEK(CURDATE())
   AND
   MONTH(post_date) = MONTH(CURDATE())
有些人会为你做这样的事情

SELECT * FROM posts
WHERE
   WEEK(post_date) = WEEK(CURDATE())
   AND
   MONTH(post_date) = MONTH(CURDATE())
这个怎么样

if($_GET['when'] == "today") {
    $query = "SELECT * FROM posts WHERE DATE(post_date) = CURDATE()";
} else if ($_GET['when'] == "week") {
    $query = "SELECT * FROM posts WHERE post_date >= DATE_SUB(NOW(), INTERVAL 1 WEEK)";
} else if ($_GET['when'] == "month") {
    $query = "SELECT * FROM posts WHERE post_date >= DATE_SUB(NOW(), INTERVAL 1 MONTH)";
}
$result = mysql_query($query);
这个怎么样

if($_GET['when'] == "today") {
    $query = "SELECT * FROM posts WHERE DATE(post_date) = CURDATE()";
} else if ($_GET['when'] == "week") {
    $query = "SELECT * FROM posts WHERE post_date >= DATE_SUB(NOW(), INTERVAL 1 WEEK)";
} else if ($_GET['when'] == "month") {
    $query = "SELECT * FROM posts WHERE post_date >= DATE_SUB(NOW(), INTERVAL 1 MONTH)";
}
$result = mysql_query($query);

听起来很有说服力,但你也应该看看今年的情况,否则每年每周/每月的帖子都会显示出来。听起来很有说服力,但你也应该看看今年的情况,否则每年每周/每月的帖子都会显示出来。在现实世界中,“当前一周”是一个模糊的概念。对一些人来说,本周从周日开始,到周六结束。对于其他人来说,它从周一开始,周日结束。这对你意味着什么?在现实世界中,“本周”是一个模糊的概念。对一些人来说,本周从周日开始,到周六结束。对于其他人来说,它从周一开始,周日结束。这对你意味着什么?