アプリ版:「スタンプのみでお礼する」機能のリリースについて

[検索結果ページのロジック] 検索結果ページを作成中なのですが…

いつもお世話になりますm(_ _)m

現在検索ページを作成中なのですが、検索結果表示の
ロジックが浮かばず困っています。
(検索機能は出来てます。)

仕様言語:VB2005 (ASP.net)
(GridView等は使わずに、ASP的な組立てです。)

(仕様)
検索結果は10件ずつ1ページに表示させます。
10件以上の場合は、「次の10件」「前の10件」の
ハイパーリンクを表示させ、移動出来るように
します。(リダイレクトで同一ページに表示)

(解らない事)
最初の10件を含め、どのようなロジックで
作れば良いかが解りません…。
現状は
(1)
for i = 1 to 10
オブジェクト(i) = DB.Rows(i).Item("項目")
next
と10件指定して1ページ目を表示させてる状態です。
(2)
検索結果の件数は取れています。

(3)
Session仕様可、URLからパラメータを取得可 です。


どのようなロジックにすれば、汎用的な検索結果ページ
になるのでしょうか?頭の中で、次へボタン押下時に+10
前の10件ボタン押下時に-10すればという考えはあるのですが、
前に進まず2週間が経ってしまいました…。

よろしければご指導お願いします。切に願いますtt

A 回答 (2件)

あとはこんな記事もあります。


http://japan.internet.com/developer/20060620/25. …

#1 の回答もこの記事も、全件を取得してからゴニョゴニョして表示する処理ではなく、必要な件数分だけを取得するものですね。
だから 「何件目から取得しているのか」 や 「何件分取得しているのか」 の情報は検索用の SQL でも使用するし、結果ページのナビゲート部分を描画するのにも必要になるので URL に記述するとかで良いんじゃないでしょうかね。
あとは、最大でも 5000件しかないのに 5000件目を表示している結果ページでも 「次の 50件」 とかのリンクは無意味ですから 「最大何件あるのか」 という情報も SQL を発行して取得しておき、ナビゲートの描画に利用すればよいかと。
    • good
    • 0

何で悩んでいるのかよくわかりません。

。。
全体の検索結果やトータル件数をどこぞに保持できているとして、URL のパラメーターに 「何件目から」 「何件分」 とかを持たせるとかは?

全件分を保持しておくのが辛いのなら毎回、
「何件目から何件目まで」 というクエリーと 「全体の件数は何件?」 てな 2つのクエリーを問いかけるとか。
下記 SQL は postalCode, pref, city, town という列を持つ postalCode テーブルに対して、pref が "北海道" というレコードの一覧を postalCode 列でソートした結果のうち 51件目~100件目を返すものです。(SQL Server 2005 から使えるやりかたっぽいです)

with query as
(
 select
  ROW_NUMBER() over (order by postalCode) as num, postalCode, pref, city, town
 from postalList
 where pref='北海道'
)
select
 num, postalCode, pref, city, town
from query
where num between 51 and 100

検索条件と between n1 and n2 の n1 と n2 をパラメータにしてストアド化しておくとか。
あとはこれとは別に件数を返す SQL も発行する。
検索結果ページに 50件ずつ表示するとして、ナビゲート部分に 「前の 50件」 「次の 50件」 とかのリンクを作るのであれば、今何件目から表示しているのかとか、あと何件あるのか、とかでリンクを作成すればいいと思います。
    • good
    • 0

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