0

私が示しているのと同様のMySQLクエリでifステートメントを使用することは可能ですか?今後のイベント(以前の日付のものではありません)の情報を取得したいと思います。

ini_set('date.timezone', 'America/New_York');
    echo $timestamp = date('Y-m-d'); 
    $sql = "select eventID,eventTitle,eventDate from events where eventLocationID = $locationID AND (eventDate > $timestamp) ORDER BY eventDate ASC";

編集-SQLステートメントは今日より前の日付を除外していません(すべてを表示しています)。

たとえば、タイムスタンプが正しく設定されていることを確認するために、タイムスタンプをエコーし​​ています。私のテーブルには、1月と今日の2つの日付を入力しました。

これが出力です

  2012-05-31 //timestamp, not part of results. just for reference
  2012-01-10 //first result, however it shouldn't display
  2012-06-22 //this should be the only result that displays
4

1 に答える 1

6

where句を使用するだけです。

$date = date('Y-m-d');
$sql = "
    SELECT 
        foo 
    FROM 
        bar 
    WHERE
        eventLocationId = ... 
        AND eventDate > '$date' 
    ORDER BY 
        eventDate DESC
";

また、m/d/YMySQLの有効な日付形式ではありません。期待していY-m-dます。


あなたの質問に直接関係のないメモについて:

クエリ後のifステートメントは避けたいです

PHPで結果セットをフィルタリングすると、where句を使用する場合よりも何倍も遅くなります。データベースは、レコードを迅速かつ効率的にフィルタリングするために作成されています。また、PHPでフィルタリングするには、実際にすべての結果をMySQLからPHPに転送する必要があります(もう1つの速度低下)。

于 2012-05-31T22:37:52.887 に答える