重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

CGI rescueさんの簡易データベース v2.1を利用しています。
物はこちらです。
http://www.rescue.ne.jp/cgi/database2/
(バージョンが3になっていますが、検索部分は同じのようです。)
これで、検索結果が何件ヒットしたのかを表示させたいです。
スクリプト内に「$hit」があったので、そのまま利用しようとすると、"1ページの表示数(またはそれ以下)"を表示してしまいます。
30件ヒットして1ページに20件表示の場合、1ページ目は「20件ヒット」、次ページは「15件ヒット」と表示されてしまいます。

どうにかして全部の検索件数を表示させることは出来ないでしょうか?

A 回答 (3件)

度々すみませんでした。


検索部分は同じという事で、質問にありました URL より
スクリプト(Ver 3.0)を持ってきて試したワケですが…
Ver 2.1 が下の方にあることに気付き、見てみましたら
使われてる変数が Ver 3.0 とは違ってました。

情報が表示されないのは

push(@NEW,$search_base_sjis);

push(@NEW,$data2)

これで表示されると思います。

> その情報の詳細を見るための「詳細」ボタンが件数分並んでます。

rescue さんとこのサンプルを見ましたが
『詳細』なるボタンはないと思うのですが…
スクリプトを見てもそのような箇所は見当たらず…

> また、これだと、1ページにすべての情報が載ってしまいますよね。
> 元々あった「○件ごとに表示」と言う機能は残しておきたいです。

持ってきたスクリプトに、先に書きました箇所の変更しましても
『次の○○件』と表示されます。何か他に変更されてる箇所等あるのでしょうか?
    • good
    • 0
この回答へのお礼

完璧な回答ありがとうございます。

>push(@NEW,$data2)
これで非表示だったのと、『次の○○件』同時にちゃんと直りました。


また、
> その情報の詳細を見るための「詳細」ボタンが件数分並んでます。

これについては説明不足ですみませんでした。
自分でつけたのですが、"レコード分の行だけ表示"と言うものの良い表現が見つからず、見たままを書き込みしてしまいました。

本当にありがとうございました。

お礼日時:2006/06/03 14:10

#1ですが、すみません。


書き箇所に ( が抜けてしまってました。

push@NEW,$search_base_sjis);

正しくは

push(@NEW,$search_base_sjis);

この回答への補足

すばやい返答ありがとうございます。

しかし、またまた問題が...(>_<)

まずは、件数は表示されるし、その件数分の行はあるのですが、肝心の情報が掲載されません。
その情報の詳細を見るための「詳細」ボタンが件数分並んでます。

また、これだと、1ページにすべての情報が載ってしまいますよね。元々あった「○件ごとに表示」と言う機能は残しておきたいです。
なので、別に変数($kensuu等)を作る方法でお願いできるでしょうか?

よろしくお願いします。

補足日時:2006/06/03 10:45
    • good
    • 0

検索処理にある



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が出てしまいました。
コピペしたので、入力間違えとは思えないのですが…

補足日時:2006/06/03 10:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!