2012-01-21 8 views
0

ちょっと私は、日、月、年それぞれ3つのドロップボックスを含む2つの日付入力があります。 日の名前はd1、月= m2、年= y1、2番目の日付はd2、m2、y2と同様です。PHPを使用してクエリを実行するにはどうすればいいですか?

特定の日付範囲の情報をデータベースに照会しようとしています。

$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); 

エラーが、私はエラーを取得しないように、私は自分のコードを変更する必要がありますどのように

  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 

ある

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

下の行にエラーを示していますもう長い?

+3

を試してみてください。 –

+0

SQLの正しい構文を適用するだけで眠いです。 – Lion

答えて

2

コードに2つのWHERE句があります。

は、あなたがあなたのSQLStatementに2つのWHERE句を持ってこのよう

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

クエリにはWHEREが2つあります。 2番目のものをANDに置き換えます。

ほとんどの「あなたのクエリにはエラーがあります」というメッセージは、MySQLが混乱している正確な文字を指しているので、の前にのエラーを探してください。

関連する問題