[PHP-users 6710] 英字を検索するさいのループ方法
miyazaki
php-users@php.gr.jp
Fri, 5 Apr 2002 20:01:08 +0900
御世話になっています。宮崎です。
postgres及びPHP4使用
AND検索エンジンを作成している途中なのですが、
以下について質問させて下さい。
仕様はキーワードの英字をそれぞれ大文字・小文字に変換し、
変換したキーワードで検索します。
1つのキーワードで2パターンの検索
2つのキーワードで4パターンの検索
3つのキーワードで16パターンの検索
:(以下続く
:
3つキーワードが入っていた時の例では、(キーワードが a b c の場合)
No. 1. 2. 3. 4. 5.
6. 7. 8.
A a A a A a
A a
And and and and and and and
and
B b B b b B
b B
And and and and and and and
and
C c c C c c
C C
という様に、大文字・小文字の検索をしたいのですが、べき乗の
数を求めた後にどういう感じでループをさせるとうまく行くのかが分かりません。
最初べき乗を知らずに組んでいた時のソース↓
$search_1 = explode(" ",$search);//サーチ文切り分け
$flg = 0;
while(sizeof($search_1) > $flg){
$search_2[$flg] = strtoupper($search_1[$flg]);//大文字変換
$search_3[$flg] = strtolower($search_1[$flg]);//小文字変換
if(sizeof($search_1) == $flg + 1){
$search_4 = $search_4 . " search like '%$search_2[$flg]%' or";
$search_5 = $search_5 . " search like '%$search_3[$flg]%' or";
$search_6 = $search_6 . " search like '%$search_2[$flg]%' or";
$search_7 = $search_7 . " search like '%$search_3[$flg]%'";
}else{
$search_4 = $search_4 . " search like '%$search_2[$flg]%' and";
$search_5 = $search_5 . " search like '%$search_3[$flg]%' and";
$search_6 = $search_6 . " search like '%$search_3[$flg]%' and";
$search_7 = $search_7 . " search like '%$search_2[$flg]%' and";
}
$flg++;
}
"select * from test where$search_4$search_5$search_6$search_7";
上記では、2つのキーワード以上の検索が出来ません。
これを踏まえてかなり試行錯誤しましたが、べき乗後のループ
が思うように組みあがりません。
どなたか御教授願います。
以下の??????部分で躓いています。
$search_1 = explode(" ",$search);//サーチ文切り分け
//べき乗式
$count = 1;
for ($i = 0; $i < sizeof($search_1); $i++) {
$count *= 2;//大文字小文字あわせて2通り
}
$flg = 0;
while(sizeof($search_1) > $flg){
??????
$flg++;
}
本当に申し訳御座いませんが、何とか御願い申し上げます。
//////////////////////////////////////////////////////////////
宮崎