日期范围过滤器不起作用

时间:2013-11-04 18:14:05

标签: php

过滤字段“PREGLEDALI”,“PREGLEDA1”,“PREGLEDA2”完美无缺,但日期范围过滤器不起作用。我在数据库中有日期格式(01.10.2013)。

    $result = mysql_query("SELECT * FROM preglediv1 WHERE NOW() BETWEEN '%s".$start."%s' AND  '%s".$end."%s'");
    $result = mysql_query("SELECT * FROM preglediv1 WHERE (`pregledali` LIKE '%".$query."%') OR (`pregleda1` LIKE '%".$query."%') OR (`pregleda2` LIKE '%".$query."%')")
    or die(mysql_error());
    if(mysql_num_rows($result) > 0)
    {
        while($results = mysql_fetch_array($result))

1 个答案:

答案 0 :(得分:1)

在您提供的代码中,我可以看到两个问题:

  • 您在第二次调用mysql_query()时覆盖$result中的数据
  • 您还在寻找约束之间的当前日期(NOW())。

假设您在MySQL而不是VARCHAR中使用DATE或DATETIME列,则可以执行以下操作($ start和$ end应格式化为"yyyy-MM-dd"):

$sql = "SELECT * FROM preglediv1 WHERE [nameofdatecolumn] BETWEEN '" . $start . "' AND '" . $end . "' AND " .
            "(`pregledali` LIKE '%".$query."%') OR (`pregleda1` LIKE '%".$query."%') OR (`pregleda2` LIKE '%".$query."%')";
$result = mysql_query($sql);