Как мне выполнить запрос с PHP, не имея проблем у меня? - PullRequest
0 голосов
/ 21 января 2012

Эй, ребята, у меня есть два ввода даты, содержащие три выпадающих списка для дня, месяца и года каждый. день имеет имя d1, месяц = ​​м2, год = y1 и аналогично для второй даты введите его d2, м2 и 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

Как мне изменить свой код, чтобы я больше не получал ошибку?

Ответы [ 2 ]

2 голосов
/ 21 января 2012

В вашем коде есть 2 предложения WHERE.

Попробуйте таким образом

$query="SELECT * FROM history 
        WHERE ACTIVITY='Logged In' 
            AND CAST(FLOOR(CAST(time AS FLOAT))AS DATETIME) 
            between ".$date1." AND ".$date2;
2 голосов
/ 21 января 2012

У вас есть два WHERE в вашем запросе.Замените второе на AND.

Большинство сообщений «у вас есть ошибка в вашем запросе» указывают на точный символ, в котором MySQL запутался, поэтому вы должны искать ошибку до , которая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...