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" ;

名前、概要、説明、営業時間、住所、郵便番号の列があります

私がやりたいことは、LIKE '%$search_each%' を含む '$construct' クエリでこれらすべての列をトリガーすることです

構造はどうなるか、OR、AND、およびUNITEを試しました

アイデアが尽きた。

4

2 に答える 2

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 に答える
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 に答える