Php 日期范围筛选器不工作

Php 日期范围筛选器不工作,php,Php,带有字段“PREGLEDALI”、“PREGLEDA1”、“PREGLEDA2”的过滤器工作正常,但日期范围过滤器不工作。我在数据库中有日期格式(2013年10月1日) $result = mysql_query("SELECT * FROM preglediv1 WHERE NOW() BETWEEN '%s".$start."%s' AND '%s".$end."%s'"); $result = mysql_query("SELECT * FROM preglediv1 W

带有字段“PREGLEDALI”、“PREGLEDA1”、“PREGLEDA2”的过滤器工作正常,但日期范围过滤器不工作。我在数据库中有日期格式(2013年10月1日)

    $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中使用的是日期或日期时间列,而不是VARCHAR,则可以执行以下操作($start和$end的格式应为):


调试这类事情的一个好方法是在每种情况下将查询分配给一个字符串变量(我使用
$sql
)。这使得
回显
查询包含的内容变得容易。然后,我要做的第一件事就是在数据库中运行它,并从中找出为什么它会产生意外的结果。泰:非常感谢Rob,我发布了整个代码,你会看到我在哪里出错。
$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);