検索結果数の表示(○件ヒット)by CGI rescue

このQ&Aのポイント
  • CGI rescueさんの簡易データベース v2.1を利用しています。検索結果の件数を表示させる方法について調べました。
  • スクリプト内の「$hit」を利用すると、1ページの表示数しか表示されない問題があります。
  • 全部の検索件数を表示させる方法についての解決策は見つかりませんでした。
回答を見る
  • ベストアンサー

検索結果数の表示(○件ヒット)by CGI rescue

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

  • Perl
  • 回答数3
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • ren10
  • ベストアンサー率52% (9/17)
回答No.3

度々すみませんでした。 検索部分は同じという事で、質問にありました URL より スクリプト(Ver 3.0)を持ってきて試したワケですが… Ver 2.1 が下の方にあることに気付き、見てみましたら 使われてる変数が Ver 3.0 とは違ってました。 情報が表示されないのは push(@NEW,$search_base_sjis); ↓ push(@NEW,$data2) これで表示されると思います。 > その情報の詳細を見るための「詳細」ボタンが件数分並んでます。 rescue さんとこのサンプルを見ましたが 『詳細』なるボタンはないと思うのですが… スクリプトを見てもそのような箇所は見当たらず… > また、これだと、1ページにすべての情報が載ってしまいますよね。 > 元々あった「○件ごとに表示」と言う機能は残しておきたいです。 持ってきたスクリプトに、先に書きました箇所の変更しましても 『次の○○件』と表示されます。何か他に変更されてる箇所等あるのでしょうか?

master-3rd
質問者

お礼

完璧な回答ありがとうございます。 >push(@NEW,$data2) これで非表示だったのと、『次の○○件』同時にちゃんと直りました。 また、 > その情報の詳細を見るための「詳細」ボタンが件数分並んでます。 これについては説明不足ですみませんでした。 自分でつけたのですが、"レコード分の行だけ表示"と言うものの良い表現が見つからず、見たままを書き込みしてしまいました。 本当にありがとうございました。

その他の回答 (2)

  • ren10
  • ベストアンサー率52% (9/17)
回答No.2

#1ですが、すみません。 書き箇所に ( が抜けてしまってました。 push@NEW,$search_base_sjis); 正しくは push(@NEW,$search_base_sjis);

master-3rd
質問者

補足

すばやい返答ありがとうございます。 しかし、またまた問題が...(>_<) まずは、件数は表示されるし、その件数分の行はあるのですが、肝心の情報が掲載されません。 その情報の詳細を見るための「詳細」ボタンが件数分並んでます。 また、これだと、1ページにすべての情報が載ってしまいますよね。元々あった「○件ごとに表示」と言う機能は残しておきたいです。 なので、別に変数($kensuu等)を作る方法でお願いできるでしょうか? よろしくお願いします。

  • ren10
  • ベストアンサー率52% (9/17)
回答No.1

検索処理にある 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 を用いればいいかと思います。

master-3rd
質問者

補足

すばやい返答ありがとうございます。 やってみましたが、500Errorが出てしまいました。 コピペしたので、入力間違えとは思えないのですが…

関連するQ&A

  • 検索のヒット数が変わる

    検索をかけて何件かヒットし右上にヒット数が表示されますが、 たまに1ページ目にはヒット数が100件中10件表示となっているのに 2ページ目には98件中10件表示とかになっている時があります。 なぜ、ヒット数に食い違いが生じるのでしょうか? 日頃、疑問に思っていたので質問させていただきました。 回答おねがいします

  • ヤフオクの検索表示結果について

    こんにちは! ヤフオクで検索をかけると、1ページあたりの表示件数が20件の時と50件の時があるのですが、どうやって決められているのでしょうか? 大量にヒットした場合、20件表示だと「次のページ」のボタンを押すのが大変なので、できれば50件~の表示にしたいのですが・・・。 これって自動的なものなのでしょうか?

  • 検索をかけたときのヒット数について

    yahooやgoogleなどの検索エンジンを使用して、キーワードを入力し、検索をかけると、 「ページとの一致(200件中1~20件目)」 などと表示されますよね。(例:yahoo) ここで、『次の20件を表示』ボタンをクリックし、21~40件目を表示させると、 「ページとの一致(50件中21~40件目)」 のように、総ヒット数が変わってしまうことがあります。 もちろん、最初の検索時に200件と表示され、最後まで総ヒット数が変わらない場合や、 ページを進めていくうちに、前のページまでは200件だったのにいきなり50件に減った という場合もあります。 これって、何故なんでしょう? ネット検索していて、ふと気になったので質問してみました。 知っている方がいらっしゃったら、教えて下さい。

  • Google検索ヒット件数の異常

    Googleでフレーズ検索するとヒット件数がおかしくなります。 例えば、 "地震の最新ニュース" でフレーズ検索:60,500件ヒット  ↓ 検索された内容を最後のページ(6万件超なのに実際4ページしかない)まで見るとヒット件数が18件に激減  ↓ ページ下部に「最も的確な結果を表示するために、上の18件と似たページは除外されています。検索結果をすべて表示するには、ここから再検索してください。」と表示される。18+18=36件となり、おかしいが、とにかく「ここから再検索してください」のリンクをクリックして再検索  ↓ 再び60,500件ヒット  ↓ 検索結果を最後のページ(6万件超なのに実際8ページしかない)までめくると71件に再び激減。「最も的確な結果を表示するために・・云々」はもはや表示されない。 以上のように、60,500件が正しいのか、18+18=36件が正しいのか、71件が正しいのか、さっぱり分かりません。同様な現象はフレーズ検索だけでなく、通常のキーワード検索でも生じるような気がします。この現象が起こる原因と、本当のヒット件数はどれが正しいのかということにつきましてご存じの方、ご回答をお願いします。

  • cgi検索結果の画面にアドレスバーのURLを表示させたいのですが・・

    下記のようなcgi検索結果の画面にアドレスバーのURLを表示させたいのですが、判る方、いらっしゃいますでしょうか。ベースはCGIROOMさんの検索専用データベース Ver2.10 sort(http://cgiroom.nu/list/database/database2s/)です。 <cgi検索結果の画面および↓表示させたいURL> http://cgiroom.nu/list/database/database2s/database.cgi?joinkeys1=&joinkeys1=&joinkeys1=&IDv005=&IDn005=keys2&IDn006=AND&template=006-005&value3=&select3=%81@&query=&sort=0&keys4=&IDv001=&IDn001=AND&word=0&print=50&INDEX=

    • ベストアンサー
    • CGI
  • Google検索のヒット件数

    Googleでフレーズ検索をして検索結果が複数ページにわたって得られた際、ページをめくっていくとヒット件数の数字が変わることがあります。例えば、 "タクラマカン砂漠のオアシス" というフレーズで検索すると検索結果の最初のページには261件と表示されますが、最後のページには133件と表示されます。なぜ件数が変わるのでしょうか。

  • 検索したときのヒット件数の表示

    たとえばyahoo Japanで検索すると、ヒット件数が何千件、何万件と表示されますよね。 以前yahoo usaでも表示されていたのですが、今日検索してみたら表示されません。 yahoo usaでは表示することをやめてしまったのでしょうか?だれかご存知の方がいらっしゃいましたら教えていただきますか? また、アメリカのサイトで検索するときの件数が表示される検索エンジンをご存じでしたら、教えてください。よろしくお願いいたします。

  • ○○を含まない、という検索方法

    CGI RESCUEさんの「簡易データベース v2.1」を利用しています。 http://www.rescue.ne.jp/cgi/database/ 検索方法は if ($name eq $FORM{'name'}) { ; } else { next; } という感じになっています。 これを、「名前に○○と△△と□□を含まないもの残りすべて」とするにはどうしたらよいでしょうか? お願いします。

    • ベストアンサー
    • CGI
  • 検索結果のヒット数

    ホームページの検索結果のヒット数がおかしいです。 キーワードを検索して、その語句に部分一致するニュース記事の検索結果が出るのですが、デバイスによって違っています。 現象は下記の通りです。 このホームページはスマホ用・PC用と別にあります。 ニュースで新型コロナについて調べたいので、 スマホからキーワードで「コロナ」と検索すればヒット数が250件と出るのですが、 PCから同様に検索すれざ、ヒット数が230件と微妙に違っています。 また、検索結果ページで次のページに移る時、ヒット数も減ったり増えたりしています。 "コロナ"以外のキーワードでも検索しましたが、上記のような現象は見られませんでした。(スマホ・PC同様) <自分で試してみたこと> ・キャッシュの削除 ・履歴の削除 ・本体更新 ・本体の日付の確認 上記の4つ試してみましたが、ホームページは改善しませんでした。 これはサーバー側に問題があったのでしょうか。 ちなみにホームページ内で使われている検索エンジンは CXENSE INSITEでした。 ご回答よろしくお願いします。

    • ベストアンサー
    • SEO
  • ヤフー検索でページ検索が自動表示される条件

    昔は、ヤフーで検索をしたときヒットしたページがヤフーのデータベース内で少なかったとき自動的に提携サイトのページ検索の結果が出て、正確なところは忘れたけれど 「○件にかしかヒットしなかったのでページのデータも表示します。」 というようなメッセージが表示されていたように思います。 それがいつのまにか、ヤフーのデータベースで1件でもヒットしたらページ検索のデータはページ検索をクリックしない限り出なかったこともあったように思います。 ところが最近また、ヤフーデータベースに引っかかってもページ検索も出ているような気がするのですが実際のところはどうなんでしょうか?

専門家に質問してみよう