美好的一天!
我进行查询,其中参数将存储在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语句捕获。
任何建议都将受到高度赞赏。谢谢。
答案 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);