Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 从日期小于提供日期的数据库中选择_Php_Mysql_Codeigniter_Date - Fatal编程技术网

Php 从日期小于提供日期的数据库中选择

Php 从日期小于提供日期的数据库中选择,php,mysql,codeigniter,date,Php,Mysql,Codeigniter,Date,我尝试从数据库中提取行,其中日期在当前日期的两周内,我使用CodeIgniter,这是我的模型: function GetToDoItems($userID) { $range = date('Y-m-d', strtotime("+2 weeks")); $query = $this->db->query("SELECT * FROM FYP_Milestones INNER JOIN FYP_Modules ON F

我尝试从数据库中提取行,其中日期在当前日期的两周内,我使用CodeIgniter,这是我的模型:

function GetToDoItems($userID)
{
  $range = date('Y-m-d', strtotime("+2 weeks"));
  $query = $this->db->query("SELECT * FROM FYP_Milestones
                            INNER JOIN FYP_Modules ON FYP_Milestones.ModuleID = FYP_Modules.ID
                            WHERE FYP_Milestones.MilestoneDue < $range
                            ORDER BY FYP_Milestones.MilestoneDue ASC
                            ");
  return $query->result();
}
函数GetToDoItems($userID)
{
$range=日期('Y-m-d',标准时间('2周”);
$query=$this->db->query(“从FYP\U里程碑中选择*
FYP_里程碑上的内部连接FYP_模块。模块ID=FYP_模块。ID
其中FYP_MilestoneDue<$范围
FYP_MilestoneDue ASC订购
");
返回$query->result();
}
它运行以下查询:

SELECT * FROM FYP_Milestones INNER JOIN FYP_Modules ON FYP_Milestones.ModuleID = FYP_Modules.ID WHERE FYP_Milestones.MilestoneDue < 2016-04-14 ORDER BY FYP_Milestones.MilestoneDue ASC
从FYP\U里程碑中选择*内部连接FYP\U里程碑上的FYP\U模块。ModuleID=FYP\U模块.ID,其中FYP\U里程碑.MilestoneDue<2016-04-14 FYP\U里程碑订购。MilestoneDue ASC
我在数据库中有一行,如下所示:


考虑到2016-04-07比2016-04-14少7天,我希望只提取一行,但是SQL返回一个空结果,为什么会这样?

您实际上不需要PHP作为范围,请使用SQL:

WHERE FYP_Milestones.MilestoneDue < (CURDATE() + INTERVAL 2 WEEK)   
其中FYP_MilestoneDue<(CURDATE()+间隔2周)

实际上,该范围不需要PHP,请使用SQL:

WHERE FYP_Milestones.MilestoneDue < (CURDATE() + INTERVAL 2 WEEK)   
其中FYP_MilestoneDue<(CURDATE()+间隔2周)

在日期值中添加单引号,如:

$query = $this->db->query("SELECT * FROM FYP_Milestones
                        INNER JOIN FYP_Modules ON FYP_Milestones.ModuleID = FYP_Modules.ID
                        WHERE FYP_Milestones.MilestoneDue < '".$range."'
                        ORDER BY FYP_Milestones.MilestoneDue ASC
                        ");
$query=$this->db->query(“从FYP\U里程碑中选择*
FYP_里程碑上的内部连接FYP_模块。模块ID=FYP_模块。ID
其中FYP_MilestoneDue<'“$range.”
FYP_MilestoneDue ASC订购
");

在日期值中添加单引号,如:

$query = $this->db->query("SELECT * FROM FYP_Milestones
                        INNER JOIN FYP_Modules ON FYP_Milestones.ModuleID = FYP_Modules.ID
                        WHERE FYP_Milestones.MilestoneDue < '".$range."'
                        ORDER BY FYP_Milestones.MilestoneDue ASC
                        ");
$query=$this->db->query(“从FYP\U里程碑中选择*
FYP_里程碑上的内部连接FYP_模块。模块ID=FYP_模块。ID
其中FYP_MilestoneDue<'“$range.”
FYP_MilestoneDue ASC订购
");

这样做比在PHPIt中更快、更有意义,而且这样做比在PHP中更有意义