日期范围筛选器不起作用


Date range filter does not work

使用字段"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))

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

  • 在第二次调用 mysql_query() 时,您将覆盖 $result 中的数据
  • 您还希望当前日期 ( NOW() ) 介于您的约束之间。

假设您在MySQL中使用DATE或DATETIME列而不是VARCHAR,您可以执行以下操作($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);