目前,我正在尝试从数据库中选择一个条件代码。
目前,我有查看表格的代码,并且只显示今天或以后的项目。
$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,但不太确定如何在call-in中使用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我希望我的帮助请求不会太混乱--任何帮助或想法都是非常有价值的!
发布于 2013-06-17 18:40:45
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-17 18:42:10
您不能在mysql中使用php语句。要解决这个问题,您应该使用mysql语句的结果,并在php中使用它。因此,您可以使用以下代码:
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";https://stackoverflow.com/questions/17145498
复制相似问题