2016-09-16 8 views
0

を使用してMySQLの日付範囲を選択するには:どのように私は次の形式でデータを送信するPHPのフォームを持つPHPフォームデータ

Array ( 
    [zone] => Array ( 
     [0] => East 
    ) 
    [publication] => Array ( 
     [0] => ABP 
    ) 
    [datefilter] => 09/01/2016 - 10/15/2016 
) 

私は次のようにMySQLのクエリを構築するためにデータを使用します。

$zone_search = $_POST['zone']; 
    $zone = join("','",$zone_search); 
    $publication_search = $_POST['publication']; 
    $publication = join("','",$publication_search); 

    $tmp = "SELECT * FROM advertisement 
      WHERE zone IN('$zone') 
      AND publication IN('$publication')"; 

しかし、データを$_POST['datefilter']フィールドに指定された2つの日付に制限したいとします。クエリに日付フィルタの日付を追加するにはどうすればよいですか?

データベーステーブル内の関連する列は、次のとおりです。

zone 
publication 
release_date 

答えて

1

投稿データの後に次のロジックを追加します。仮定日付データ提出は、このパターンの小さな日付に従う - サンプル投稿データごとの大きな日付。

<? 
    //$_POST['datefilter'] = '09/01/2016 - 10/15/2016'; 
    $zone_search = $_POST['zone']; 
    $zone = join("','",$zone_search); 
    $publication_search = $_POST['publication']; 
    $publication = join("','",$publication_search);

$dates = explode("-", $_POST['datefilter']); echo $dt1 = date('Y-m-d', strtotime(trim($dates[0]))); echo "<br/>"; echo $dt2 = date('Y-m-d', strtotime(trim($dates[1]))); $tmp = "SELECT * FROM advertisement WHERE zone IN('$zone') AND publication IN('$publication') and release_date between $dt1 and $d2";
-2

あなたは、PHP-機能strtotime()を使用して、タイムスタンプに日付を変換しようとする場合があります。また、DBの列を「タイムスタンプ」に変更する必要があります。次に、2つの整数を比較することができます。例: SELECT * FROM advertisement WHERE zone IN ('$zone') AND publication IN ('$publication') AND release_date > ('$timestamp_from') AND release_date < ('$timestamp_to')

関連する問題