Php 为什么不是';这不是从7天前提取数据吗?

Php 为什么不是';这不是从7天前提取数据吗?,php,mysql,Php,Mysql,我似乎不知道我哪里出了问题。这就是我所拥有的: $query = ("SELECT * FROM contacts WHERE agentassigned = 'agent' AND reminder ='$reminder date("Y-m-d",strtotime("+7 day"))' ORDER BY firstname") or die ('Error: ' .mysql_error()); MySQL不会执行您在查询中发送的PHP代码 那可能不是你想做的。相反,连接date()调

我似乎不知道我哪里出了问题。这就是我所拥有的:

$query = ("SELECT * FROM contacts WHERE agentassigned = 'agent' AND reminder ='$reminder date("Y-m-d",strtotime("+7 day"))' ORDER BY firstname") or die ('Error: ' .mysql_error());

MySQL不会执行您在查询中发送的PHP代码

那可能不是你想做的。相反,连接
date()
调用的结果

$query = "SELECT * FROM contacts WHERE agentassigned = 'agent' AND reminder ='$reminder " . date("Y-m-d",strtotime("+7 day")) . "' ORDER BY firstname";
根据你的评论,你实际上想要这样的东西:

SELECT 
  *
FROM
  contacts
WHERE
  agentassigned = 'agent'
AND
  reminder_date BETWEEN CURRENT_DATE AND CURRENT_DATE + INTERVAL 7 DAY

您需要在包含提醒日期的表中添加一列
提醒\u日期
。您不想像现在这样试图从字符串中解析它。这是缓慢和错误的

MySQL不会执行您在查询中发送的PHP代码

那可能不是你想做的。相反,连接
date()
调用的结果

$query = "SELECT * FROM contacts WHERE agentassigned = 'agent' AND reminder ='$reminder " . date("Y-m-d",strtotime("+7 day")) . "' ORDER BY firstname";
根据你的评论,你实际上想要这样的东西:

SELECT 
  *
FROM
  contacts
WHERE
  agentassigned = 'agent'
AND
  reminder_date BETWEEN CURRENT_DATE AND CURRENT_DATE + INTERVAL 7 DAY

您需要在包含提醒日期的表中添加一列
提醒\u日期
。您不想像现在这样试图从字符串中解析它。这是缓慢和错误的

不能在双引号字符串内插入函数调用。而是先执行函数调用,然后将结果保存到
$date

$date = date("Y-m-d",strtotime("+7 day"));
$query = ("SELECT * FROM contacts WHERE agentassigned = 'agent' AND reminder ='$reminder $date' ORDER BY firstname") or die ('Error:  ' .mysql_error());

不能在双引号字符串内插入函数调用。而是先执行函数调用,然后将结果保存到
$date

$date = date("Y-m-d",strtotime("+7 day"));
$query = ("SELECT * FROM contacts WHERE agentassigned = 'agent' AND reminder ='$reminder $date' ORDER BY firstname") or die ('Error:  ' .mysql_error());


因为你的查询看起来是7天以后的事了。尝试使用“-7天”而不是“+7天”。

因为您的查询看起来是7天以后的查询。尝试使用“-7天”而不是“+7天”。

提醒中的日期是2011-07-29,但它仍然没有使用该代码显示…?这是3天之后,而不是7天之后,除非你是时间旅行者:)那么,我的代码有什么错,我想显示未来7天到期的所有提醒?2011-07-29是3天之后。您的查询要求查询日期为2011-08-02(7天后)的行。您正在检查日期是否相等。检查提醒中的日期是2011-07-29,但它仍然没有使用该代码显示…?这是从现在起的3天,而不是从现在起的7天,除非你是一个时间旅行者:)那么,我的代码有什么错,我想显示未来7天内到期的所有提醒?2011-07-29是从现在起的3天。您的查询要求查询日期为2011-08-02(7天后)的行。您正在检查日期是否相等。检查这就是我想在未来7天内提取所有提醒的内容。啊,好吧-你的标题没有这么说。然后查看其他答案,但您需要这样做:您应该将日期存储在日期类型列中,而不是作为varchar/text列中字符串的一部分。然后你可以简单地向数据库查询行
,其中某个日期介于当前日期和当前日期之间+间隔7天
。这就是我想在未来7天内提取所有提醒的内容。啊,好吧-你的标题没有这么说。然后查看其他答案,但您需要这样做:您应该将日期存储在日期类型列中,而不是作为varchar/text列中字符串的一部分。然后,您只需向数据库查询行
,其中当前日期和当前日期之间的某个日期+间隔7天
。谢谢!我试过了…提醒中的日期设置为2011-07-29,但它仍然没有使用该代码提取提醒…?如果我只想在这一周内提取提醒,例如,就在这一周7月24日至7月30日?joshua76您需要发布表数据的示例,由于查询中有
$rementer
变量,因此我们必须假设它不是日期时间列。它是日期列,而不是日期时间列。我的桌子是ID,提醒,名字,姓氏谢谢!我试过了…提醒中的日期设置为2011-07-29,但它仍然没有使用该代码提取提醒…?如果我只想在这一周内提取提醒,例如,就在这一周7月24日至7月30日?joshua76您需要发布表数据的示例,由于查询中有
$rementer
变量,因此我们必须假设它不是日期时间列。它是日期列,而不是日期时间列。我的表是ID、提醒、名字、姓氏