0
$search_exploded = explode (" ", $search);
foreach($search_exploded as $search_each) {
    $x++;
    if($x==1) 
        $construct .="Name  LIKE '%$search_each%'";
    else
        $construct .="AND Name LIKE '%$search_each%'";
}

$construct ="SELECT * FROM Rating, Attraction WHERE $construct" ;

我有列名称、摘要、描述、营业时间、地址、邮政编码

我想要做的是触发 '$construct' 查询中的所有这些列,其中包括 LIKE '%$search_each%'

结构是什么,我尝试过 OR、AND 和 UNITE

我已经没有想法了。

4

2 回答 2

0
$columns = array('Name', 'Summary', 'Description', 'OpeningHours', 'Address', 'Postcode')
foreach($columns as $column) {
    $search_exploded = explode (" ", $search[$column]);
    foreach($search_exploded as $search_each) {
        $x++;
        if($x==1) 
            $construct .="$column  LIKE '%$search_each%'";
        else
            $construct .="AND $column LIKE '%$search_each%'";
    }
}

您必须记住,$search现在是一个数组,其中搜索条目作为每个列键的字符串值。

于 2012-12-07T11:23:08.230 回答
0

像这样使用concat_ws()

$construct ="SELECT * FROM Rating, Attraction WHERE
concat_ws(Name, Summary, Description, OpeningHours, Address, Postcode)
LIKE '%$search_each%'";

希望它工作...

于 2012-12-07T11:16:33.653 回答