0

チェックボックスの値をカンマ区切りの値としてdbに保存しています。

Features

1,3,4

1,2,3,4,5

3,4,5,6

検索中に、ユーザーがチェックボックスを選択することに基づいてレコードを選択する必要があります。たとえば、ユーザーが選択した場合、1 and 6一致するレコードをフェッチする必要があります。のような配列として選択されたチェックボックス値を取得しています(0=>1,1=>6)。私はこのようにループする方法がわかりませんFIND_IN_SET(1,Features) OR FIND_IN_SET(6,Features)

それは次のように来なければなりません

SELECT * FROM table WHERE FIND_IN_SET(1,Features) OR FIND_IN_SET(6,Features)
4

2 に答える 2

1
$str='%';
foreach($array as $val)
{$str.=$val.'%';}

SELECT * FROM table WHERE Features like $str

アップデート:

$str='';
    foreach($array as $val)
    {$str.='or Feature like %'.$val.'%';}
$str[0]='';$str[1]='';

    SELECT * FROM table WHERE $str
于 2012-07-10T04:41:17.313 に答える
0

以下のコードを使用して、このようなクエリを取得するように修正しましたSELECT * FROM table WHERE FIND_IN_SET(1,Features) OR FIND_IN_SET(6,Features)

if($selCount >1){
    foreach($luxPropFeatures as $val) {
      $str .="OR FIND_IN_SET('".$val."',LP.luxury_property_feature_id) ";
      $trimmed = ltrim($str, "OR"); 
      //$str[0]='';$str[2]='';
     }
}else{

    foreach($luxPropFeatures as $val) {
        $trimmed = "FIND_IN_SET('".$val."',LP.luxury_property_feature_id) ";
    }

}
于 2012-07-10T11:01:49.603 に答える