2012-04-23 14 views
0

こんにちは私のサイトの検索エンジンのフィルタをコーディングしたいと思います。今私はそれが簡単なフィルタを使用するための最良の方法だと思った。ので、私のコードは次のようになります。フィルタがオンのときに変数を変更する方法

}else if ($filter_a === 1){ 
     $filter = "WHERE `a` LIKE '%$a%'"; 
}else if ($filter_b === 1){ 
     $filter = "WHERE `b` LIKE '%$b%'"; 
}else if ($filter_c === 1){ 
     $filter = "WHERE `c` LIKE '%$c%'"; 
... 
}else if (($filter_a === 1) && ($filter_b === 1)){ 
     $filter = "WHERE `a` LIKE '%$a%' AND `b` LIKE '%$b%'"; 
}else if (($filter_a === 1) && ($filter_c === 1)){ 
     $filter = "WHERE `a` LIKE '%$a%' AND `c` LIKE '%$c%'"; 
... and so on 

問題は、私は5倍Nを持っているので、これの順列が$filter

120 possibilitesだろうということです私はこの問題を解決することができますどのような方法がありますか?私を助けてくれる人がいるなら、本当に感謝しています。どうもありがとう。

答えて

2

この方法はどうですか?

if ($filter_a === 1) { 
     $filter[] = "`a` LIKE '%$a%'"; 
} 
if ($filter_b === 1) { 
     $filter[] = "`b` LIKE '%$b%'"; 
} 
if ($filter_c === 1) { 
     $filter[] = "`c` LIKE '%$c%'"; 
} 
$filter = "WHERE ".implode(" AND ", $filter); 
+0

hello、thats working perfect。どうもありがとうございました。良い一日を。 – bonny

関連する問題