- ベストアンサー
検索結果数の表示(○件ヒット)by CGI rescue
- CGI rescueさんの簡易データベース v2.1を利用しています。検索結果の件数を表示させる方法について調べました。
- スクリプト内の「$hit」を利用すると、1ページの表示数しか表示されない問題があります。
- 全部の検索件数を表示させる方法についての解決策は見つかりませんでした。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
度々すみませんでした。 検索部分は同じという事で、質問にありました URL より スクリプト(Ver 3.0)を持ってきて試したワケですが… Ver 2.1 が下の方にあることに気付き、見てみましたら 使われてる変数が Ver 3.0 とは違ってました。 情報が表示されないのは push(@NEW,$search_base_sjis); ↓ push(@NEW,$data2) これで表示されると思います。 > その情報の詳細を見るための「詳細」ボタンが件数分並んでます。 rescue さんとこのサンプルを見ましたが 『詳細』なるボタンはないと思うのですが… スクリプトを見てもそのような箇所は見当たらず… > また、これだと、1ページにすべての情報が載ってしまいますよね。 > 元々あった「○件ごとに表示」と言う機能は残しておきたいです。 持ってきたスクリプトに、先に書きました箇所の変更しましても 『次の○○件』と表示されます。何か他に変更されてる箇所等あるのでしょうか?
その他の回答 (2)
- ren10
- ベストアンサー率52% (9/17)
#1ですが、すみません。 書き箇所に ( が抜けてしまってました。 push@NEW,$search_base_sjis); 正しくは push(@NEW,$search_base_sjis);
補足
すばやい返答ありがとうございます。 しかし、またまた問題が...(>_<) まずは、件数は表示されるし、その件数分の行はあるのですが、肝心の情報が掲載されません。 その情報の詳細を見るための「詳細」ボタンが件数分並んでます。 また、これだと、1ページにすべての情報が載ってしまいますよね。元々あった「○件ごとに表示」と言う機能は残しておきたいです。 なので、別に変数($kensuu等)を作る方法でお願いできるでしょうか? よろしくお願いします。
- ren10
- ベストアンサー率52% (9/17)
検索処理にある foreach $num ($FF .. $#BASE) { となってる所を次のように変更する foreach $num (0 .. $#BASE) { そこから少し下にある以下の2行を削除するなり、コメントとするなりして… if ($hit == $page) { $next_num = $num; last; } else { push(@NEW,$search_base_sjis); $hit++; } 変わりに次の3行を書き加える $hit++; if (@NEW == $page && !$next_num){ $next_num = $num; } if (@NEW < $page && $num >= $FF){ push@NEW,$search_base_sjis); } これで変数 $hit にトータルのヒット件数が得られますので、 表示したい箇所に $hit を用いればいいかと思います。
補足
すばやい返答ありがとうございます。 やってみましたが、500Errorが出てしまいました。 コピペしたので、入力間違えとは思えないのですが…
お礼
完璧な回答ありがとうございます。 >push(@NEW,$data2) これで非表示だったのと、『次の○○件』同時にちゃんと直りました。 また、 > その情報の詳細を見るための「詳細」ボタンが件数分並んでます。 これについては説明不足ですみませんでした。 自分でつけたのですが、"レコード分の行だけ表示"と言うものの良い表現が見つからず、見たままを書き込みしてしまいました。 本当にありがとうございました。