Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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+SQL:搜索同一天、同一个月内的事件,无论是哪一年_Php_Mysql_Date_Search_Days - Fatal编程技术网

PHP+SQL:搜索同一天、同一个月内的事件,无论是哪一年

PHP+SQL:搜索同一天、同一个月内的事件,无论是哪一年,php,mysql,date,search,days,Php,Mysql,Date,Search,Days,我想在这一天创建一个小网站。 当我想在数据库中搜索当天发生的事件时,我遇到了一个问题。比如显示2019年10月12日、2014年10月12日或2010年10月12日的活动。不仅是从今年开始 $todayDate = date("Y-m-d"); $result = mysqli_query($conn,"SELECT * FROM memories WHERE datecontent LIKE '$todayDate'"); 目前我拥有的是一个PHP函数

我想在这一天创建一个小网站。 当我想在数据库中搜索当天发生的事件时,我遇到了一个问题。比如显示2019年10月12日、2014年10月12日或2010年10月12日的活动。不仅是从今年开始

$todayDate = date("Y-m-d");
$result = mysqli_query($conn,"SELECT * FROM memories WHERE datecontent LIKE '$todayDate'");
目前我拥有的是一个PHP函数,它执行SQL请求。但它只显示了当年的当天事件

$todayDate = date("Y-m-d");
$result = mysqli_query($conn,"SELECT * FROM memories WHERE datecontent LIKE '$todayDate'");

无论是哪一年,我可以更改什么来搜索同一天+同一个月的内容?

根据日期内容的类型,这些内容可能会满足您的要求

$result = mysqli_query($conn,"
SELECT * 
  FROM memories 
 WHERE DAY(datecontent)=".date("d")." 
   AND MONTH(datecontent)=".date("m"));

根据datecontent的类型,类似于这些内容的内容可能会实现您想要的功能

$result = mysqli_query($conn,"
SELECT * 
  FROM memories 
 WHERE DAY(datecontent)=".date("d")." 
   AND MONTH(datecontent)=".date("m"));

由于您希望返回始终与今天的日期匹配的内存,因此完全可以在SQL中执行此操作,而无需使用PHP变量。下面是一个示例模式

CREATE TABLE memories (
 id INT,
 datecontent DATE
);

INSERT INTO memories (id, datecontent)
VALUES (1,'2000-12-10'),(2,'1990-03-22'),(3,'2008-12-24');
我们可以将当天发生的事件与以下样式的SQL语句进行匹配

SELECT * FROM memories
WHERE MONTH(datecontent) = MONTH(CURDATE())
AND DAY(datecontent) = DAY(CURDATE());
在PHP中执行此操作将如下所示:


$result = mysqli_query($conn,"SELECT * FROM memories WHERE MONTH(datecontent) = MONTH(CURDATE()) AND DAY(datecontent) = DAY(CURDATE())");

由于您希望返回始终与今天的日期匹配的内存,因此完全可以在SQL中执行此操作,而无需使用PHP变量。下面是一个示例模式

CREATE TABLE memories (
 id INT,
 datecontent DATE
);

INSERT INTO memories (id, datecontent)
VALUES (1,'2000-12-10'),(2,'1990-03-22'),(3,'2008-12-24');
我们可以将当天发生的事件与以下样式的SQL语句进行匹配

SELECT * FROM memories
WHERE MONTH(datecontent) = MONTH(CURDATE())
AND DAY(datecontent) = DAY(CURDATE());
在PHP中执行此操作将如下所示:


$result = mysqli_query($conn,"SELECT * FROM memories WHERE MONTH(datecontent) = MONTH(CURDATE()) AND DAY(datecontent) = DAY(CURDATE())");


数据库中datecontent列的类型是什么?MySQL具有日期和月份函数,因此您必须将$todayDate拆分为日期和月份部分,并使用这些函数进行查询。datecontent列的类型是日期。如有必要,可对其进行更改!参见日期格式。或者,如果需要索引,则将月份和日期与year@NevilleKuyt当我需要搜索包含2个变量的列时,我不确定如何在SQL查询中使用日期和月份。你能给我一个例子吗?数据库中datecontent列的类型是什么?MySQL有日期和月份函数,所以你必须将$todayDate拆分为日期和月份部分,并使用这些函数进行查询。datecontent列的类型是日期。如有必要,可对其进行更改!参见日期格式。或者,如果需要索引,则将月份和日期与year@NevilleKuyt当我需要搜索包含2个变量的列时,我不确定如何在SQL查询中使用日期和月份。你能给我举个例子吗?谢谢你的回答。在my memories表中,日期位于my datecontent列中。在不选择列的情况下搜索是否有效?应该可以。我通常倾向于避免使用SELECT*,但我不知道除了datecontent之外还有哪些列。如果它不只是在“选择零件”中列出所需的列。这样做更好,因为如果表顺序改变,结果顺序就不会改变。谢谢你的回答。在my memories表中,日期位于my datecontent列中。在不选择列的情况下搜索是否有效?应该可以。我通常倾向于避免使用SELECT*,但我不知道除了datecontent之外还有哪些列。如果它不只是在“选择零件”中列出所需的列。这样做更好,因为如果表顺序改变,结果顺序就不会改变。这太棒了,我会尽快尝试。谢谢你的回复!这是想要的工作,谢谢你的时间:这太棒了,我会尽快尝试。谢谢你的回复!这是我们想要的,感谢您抽出时间: