-4

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

1 回答 1

1

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

  • 您正在覆盖$result第二次调用 mysql_query() 中的数据
  • 您还在寻找当前日期 ( 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);
于 2013-11-04T18:40:54.220 回答