mysql脚本不适用于日期

时间:2011-07-27 05:41:04

标签: php mysql

  

可能重复:
  why isn't this pulling data from 7 days back?

这是我所拥有的,无论日期如何,它都会不断返回所有提醒。任何人都可以帮助指导我吗?

$reminder=$_GET['reminder'];

$date = date('Y-m-d',strtotime("last sunday + INTERVAL 7 DAY "));

$query = ("SELECT * FROM contacts WHERE reminder = '$reminder $date' ORDER BY firstname") or die ('Error: ' .mysql_error()); 

$result=mysql_query($query);

while ($row = mysql_fetch_array($result)) {

3 个答案:

答案 0 :(得分:1)

strtotime非常强大,但它无法解析MySQL日期选择语法。如果你想在最后一个星期天之后的7天,“星期日”有效。你也可以这样做,“上周日+ 7天”。

我不知道$reminder是什么(您确定需要将日期添加到提醒变量吗?),但这适用于您的$date变量:

$date = date('Y-m-d',strtotime("sunday"));

顺便说一句,这是致命的:

$reminder=$_GET['reminder'];
$query = ("SELECT * FROM contacts WHERE reminder = '$reminder $date' ".
            " ORDER BY firstname");
            // or die ('Error: ' .mysql_error()); <-- line is always true...

查看Bobby Tables,了解为什么第一行应该是:

$reminder=mysql_real_escape_string( $_GET['reminder'] );

答案 1 :(得分:0)

你想:

WHERE reminder = '$reminder' AND date_column = $date

答案 2 :(得分:0)

你写的sql是

SELECT * FROM contacts WHERE reminder = '$reminder $date' ORDER BY firstname

我认为它应该像是

SELECT * FROM contacts WHERE reminder = '$reminder' AND date='$date' ORDER BY firstname

但仍然取决于您的架构,所以只需打印您的查询&amp;在mysql-prompt或phpmyadmin中执行将为您提供有关故障排除的好主意。