PHP查询Array中的参数



大家好!

我正在进行一个查询,其中参数将存储在ARRAY中。我的代码如下:

    $conditions = array();
    if ($event != ''){
        $conditions[] = "event LIKE '%$event%'";   //ERROR HERE?
    }
    if ($event_name != 'Choose Category') {
        $conditions[] = 'event_name = "'.$event_name.'"';
    }
    if ($event_startDate != '') {
        $conditions[] = 'event_startDate = "'.$event_startDate.'"';
    }
    if ($event_endDate != '') {
        $conditions[] = 'event_endDate = "'.$event_endDate.'"';
    }
    $query = "SELECT *
          FROM eventlist 
          WHERE event_share = 1".implode(' AND ', $conditions); //IS THIS CORRECT?
    $result = mysql_query($query) or die('Error: Query failed');

关于这个已经有了以前的问题,我已经尝试了大部分的答案(我已经尝试了很多组合)。但我仍然不能产生我想要的结果。我的第一个错误是LIKE..此外,我有错误与我的查询语句。我想要的是根据用户的需求组合所有的参数。如果用户没有输入任何参数,它将被我的If语句捕获。

任何建议都将非常感谢。谢谢你。

上面的代码可能会生成如下查询:

$query = "SELECT *
          FROM eventlist 
          WHERE event_share = 1  event like '%xyz%' "

那就是你错过了AND之前的事件…

建议:
1)如果你也添加一些错误代码会更好
2.)对$query使用以下代码:

$conditions[] = 'event_share = 1';
$query = "SELECT *
          FROM eventlist 
          WHERE ".implode(' AND ', $conditions);

试试这个:

 $query = "SELECT *
      FROM eventlist 
      WHERE event_share = 1 AND ".implode(' AND ', $conditions);

相关内容

最新更新