如何使用PHP执行查询而不遇到我遇到的问题?

如何使用PHP执行查询而不遇到我遇到的问题?,php,sql,date,time,range,Php,Sql,Date,Time,Range,嘿,伙计们,我有两个日期输入,其中包含三个日期、月份和年份的下拉框。 day的名称为d1,month=m2,year=y1,第二个日期的名称为d2、m2和y2 我正在尝试查询数据库中特定日期范围之间的信息 $date1=date("Y-m-d", mktime(0, 0, 0, $_POST['m1'], $_POST['d1'],$_POST['y1'])); $date2=date("Y-m-d", mktime(0, 0, 0, $_POST['m2'], $_POST['d2']

嘿,伙计们,我有两个日期输入,其中包含三个日期、月份和年份的下拉框。 day的名称为d1,month=m2,year=y1,第二个日期的名称为d2、m2和y2

我正在尝试查询数据库中特定日期范围之间的信息

  $date1=date("Y-m-d", mktime(0, 0, 0, $_POST['m1'], $_POST['d1'],$_POST['y1']));
  $date2=date("Y-m-d", mktime(0, 0, 0, $_POST['m2'], $_POST['d2'],$_POST['y2']));

  echo $date1." and ".$date2;

$query="SELECT *FROM FDB where time BETWEEN ".$date1." and ".$date2;
$f = mysql_query($query) or die(mysql_error());
$nfiles= mysql_num_rows($f);

$query="SELECT *FROM usr where created BETWEEN ".$date1." and ".$date2;
$f = mysql_query($query) or die(mysql_error());
$nus= mysql_num_rows($f);
它在下面的行中显示错误

$query="SELECT *FROM history WHERE ACTIVITY='Logged In' where CAST(FLOOR(CAST(time AS FLOAT))AS DATETIME) between ".$date1." AND ".$date2;
错误是

          You have an error in your SQL syntax; check the manual that corresponds to  your MySQL server version for the right syntax to use near 'where CAST(FLOOR(CAST(time AS FLOAT))AS DATETIME) between `2011-01-01` AND `2012' at line 1

我需要如何更改代码,以便不再出现错误?

您的查询中有两个
,其中
s。将第二个替换为


大多数“您的查询中有一个错误”消息都指向MySQL混淆的确切字符,因此您应该在这之前查找错误。

您的查询中有两个
,其中
s。将第二个替换为


大多数“您的查询中有一个错误”消息指向MySQL混淆的确切字符,因此您应该在这之前查找错误。

您的代码中有两个where子句

这样试试

$query="SELECT * FROM history 
        WHERE ACTIVITY='Logged In' 
            AND CAST(FLOOR(CAST(time AS FLOAT))AS DATETIME) 
            between ".$date1." AND ".$date2;

代码中有两个WHERE子句

这样试试

$query="SELECT * FROM history 
        WHERE ACTIVITY='Logged In' 
            AND CAST(FLOOR(CAST(time AS FLOAT))AS DATETIME) 
            between ".$date1." AND ".$date2;

在SQLstatement中有两个WHERE子句。只需sleepy即可应用SQL的正确语法。在SQLstatement中有两个WHERE子句。只需sleepy即可应用SQL的正确语法。