Array中的PHP查询参数

时间:2011-04-24 08:32:11

标签: php

美好的一天!

我进行查询,其中参数将存储在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语句捕获。

任何建议都将受到高度赞赏。谢谢。

2 个答案:

答案 0 :(得分:2)

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

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

你在事件发生之前就错过了......

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

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

答案 1 :(得分:1)

试试这个:

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