1

現在、データベースから選択するための条件付きコードに頭を悩ませようとしています。

現時点では、テーブルを見て、今日以降のアイテムのみを表示するコードがあります。

$today = date("Y-m-d");
mysql_select_db($database_db, $db);
$query_event = "SELECT * FROM campaign WHERE (dateclosed >= '".$today."' || extensiondate >= '".$today."')  AND released = 1  ORDER BY position ASC";

これはきちんと動作します。

私がやりたいのは、上記のコードに条件を作成することです。これは、必ずしも終了予定日を持たないイベントがある場合があるためですが、それも結果に表示したい.

'campaign'テーブル内に「 」という名前の追加フィールドを作成しましたShowDateRange。これは、イベントに締め切り日があるかどうかを判断できる場所です。このフィールドに ' 1' が含まれている場合は、含まれています。

tutes を読みましたが、コールイン内で if else にアプローチする方法がよくわかりません。私はこれが完全に間違っていることを知っていますが..

$query_event = "SELECT * FROM campaign (if ($ShowDateRange == 1) { WHERE (dateclosed >= '".$today."' || extensiondate >= '".$today."')  AND released = 1 } else { WHERE released = 1 }) ORDER BY position ASC

助けを求める私の要求があまり混乱しないことを願っています – どんな助けや考えも本当に大切です!.

4

2 に答える 2

3

mysql 内で php ステートメントを使用することはできません。この問題を回避するには、mysql ステートメントの結果を使用し、それを php.ini ファイルで使用する必要があります。したがって、次のコードを使用できます。

if ($ShowDateRange == 1)
{
   $string = "WHERE (dateclosed >= '$today' || extensiondate >= '$today')  AND released = 1";
}
else {
   $string = "WHERE released = 1";
}

$query_event = "SELECT * FROM campaign $string ORDER BY position ASC";
于 2013-06-17T10:42:09.770 に答える
3

MySQL はすぐに使用IF()できる条件をサポートしています。PHP とは少し異なるため、構文が正しいことを確認してくださいif()

http://dev.mysql.com/doc/refman/5.0/en/if.html

これも

http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html

于 2013-06-17T10:40:45.333 に答える