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 支持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 回答
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 回答