CGI-BBS > データベース > 簡易データベース > 複数要素での検索は出来ますか?


カレッヂ
カレッヂ


質問者 ひろ  投稿日 3/15(木) 03:04:47
簡易データベースを改造したいんですが、例えば都道府県別の検索で「東京」だけではなく
「東京、大阪、京都」というふうに複数の要素で検索してヒットしたデータを表示したいの
ですが、そういう改造は可能でしょうか?
HTMLの入力フォームはチェックボックスで複数の都道府県を選択するようにしようと思って
いるのですが・・・

CGIは勉強を始めたばかりですので、よろしくお願いします。
回答者 羊相談員  [削除]  投稿日 3/15(木) 09:39:01
入力フォームのソースは以下のように記述します。

<input type="checkbox" name="PREF" value="北海道">北海道
<input type="checkbox" name="PREF" value="青森県">青森県
(以下略)

57行目の
$FORM{$name} = $value;
を以下のように変更します。
if($name eq 'PREF'){
    $FORM{$name} .= $value;
}
else{
    $FORM{$name} = $value;
}

82行目の
if ($PREF eq $FORM{'PREF'}) { ; } else { next; }

if ($FORM{'PREF'} =~ $PREF) { ; } else { next; }
に変更します。

ただし$FORM{'PREF'}の初期値の設定を行っていないためうまくいかないもしれません。
そのときはスクリプトの最初の方に
$FORM{'PREF'} = '';
と記述してみてください。
質問者 ひろ  [削除]  投稿日 3/15(木) 15:32:14
レスありがとうございます。

なんとか複数要素でも検索出きるようになったのですが、多少不具合がある
ようなのでなんとかならないでしょうか。

色々試した結果、最初は「東京」「大阪」「京都」と複数要素で検索出きる
のですが「次の20件を表示」をクリックすると「京都」のみでしか検索し
ないようで「東京」「大阪」のデータが表示されません。

今のところは1ページの表示件数を多くすれば全データが表示されるのです
が、データ数が多くなると困ったことになりそうなので、解決法がありまし
たら恐縮ですがまたレスお願いできないでしょうか。
回答者 羊相談員  [削除]  投稿日 3/15(木) 17:58:13
$FORM{$name} = $value;
を変更するときと同じ要領で
$FORM2{$name}の方も同じように変更してやればうまくいくと思います。

if($name eq 'PREF'){
    $FORM2{$name} .= $value;
}
else{
    $FORM2{$name} = $value;
}
質問者 ひろ  [削除]  投稿日 3/15(木) 23:33:39
おかげでうまくいきました。羊相談員さんありがとうございます。  

このページは終了したので返信(回答)は書きこめません

Web裏技