プロが教える店舗&オフィスのセキュリティ対策術

ASP(ASP.NETではないです)でデータベースに接続し、検索する処理で質問させてください。

WEB画面で検索条件を入力し検索した結果、件数が多い場合は結果表示前にメッセージを出し、
そのまま表示するか、検索条件を見直すために検索条件の入力画面に戻すという仕組みを
作りたいと思っています。

SQLの生成やデータベースへの問い合わせはサーバー側の処理になるため、件数がわかっても
クライアント側にメッセージボックスを出せません。

一度クライアントに件数を表示する画面を出し、OKボタンをクリックしたら再度同じSQLを
走らせるというくらいしか思いつかないのですが、何か他に良い方法はありますでしょうか?

A 回答 (1件)

こんにちは。



>SQLの生成やデータベースへの問い合わせはサーバー側の処理になるため、件数がわかっても
>クライアント側にメッセージボックスを出せません。
>一度クライアントに件数を表示する画面を出し、OKボタンをクリックしたら再度同じSQLを
>走らせるというくらいしか思いつかないのですが、何か他に良い方法はありますでしょうか?

今風に作るのであれば件数のみを取得するSQLを実行してJSONなりで件数を返すサーバ側の処理を実行します。
例えばですが
count.aspに非同期で通信し、指定以上の件数が返ってきた場合はalertなりでメッセージを表示してあげます。
指定未満の件数だった場合はalertは表示せず、検索結果を表示するresult.aspへ検索条件を送信します。

同じSQLを発行して件数を取るのは処理として無駄になりますので
select count(*) as CNT from TABLE
とかでカウントを取ったほうが良いと思います。

ajaxを使わなくとも、result.phpにてカウントを取って、指定件数以上であれば検索結果を表示せず、
入力画面へ何かフラグ等を渡しつつもどしてあげれば、その条件にてalertの表示等を行えば良いと思います。
    • good
    • 0
この回答へのお礼

ご意見ありがとうございました。
非常に参考になりました。

お礼日時:2014/02/05 17:17

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