2017-02-08 3 views
-4

elseifステートメントをいくつか設定して、入力フィールドが空であるかどうかを確認しようとしています。これらの入力フィールドの値は、$ date1と$ date 2として宣言されています。これらのフィールドが空でない場合、MySQLクエリはその2つの日付の間にあるすべてのデータを選択します。2つの変数が空であるかどうかを調べる

具体的には、状態に問題があります。これは私がこれまで持っているものです:私は、SQLクエリを追加するとき、私は何も結果を得ることはありませんよう

$keyword = esc_sql($_GET['keyword']); 
$date1 = esc_sql($_GET['date1']); 
$date2 = esc_sql($_GET['date2']); 

$sql = "SELECT * FROM tablename WHERE "; 

if(!empty($keyword)){ 
    $sql .= " name LIKE '%$keyword%'"; 
} 

elseif(!empty($date1)){ 
    $sql .= " introDate = '$dateIntro1'"; 
} 

elseif (!empty($date1) && !empty($date2)) { 
    sql .= " introDate BETWEEN '$date1' AND '$date2'" 
} 

しかし、elseif条件は、動作するようには思えません。私はすでにSQLクエリをテストして、うまく動作します。私は何が欠けていますか?

+0

どこのクエリを実行してもらえません。 – Kaylined

+0

$ date1と$ date2変数の設定は –

+1

です。これは有効なPHPではありません。 SQLをPHPスクリプトに入れることはできません。 mysqli関数の使い方についていくつかの研究をする必要があります。 – AmericanUmlaut

答えて

-2

そこにはにdate2$、更新が欠落しています。

SELECT * FROM `tablename` WHERE date BETWEEN '$date1' AND '$date2' 

そしてもちろん、あなたはmysqli_queryまたは任意のドライバは、使用のように、データベースにクエリを送信する必要があります。

変数がユーザー入力から来た場合のSQLインジェクションにも注意してください。むしろ一般的に可変バインディングを使用します。

関連する問題