
処理の内容
データベースを全件検索し、検索した結果を5件ずつ表示します。
データベースを検索するには拡張タグの<!DO>を使用します。この<!DO>タグでSQL文を宣言し、データベースを検索します。
検索した情報は、拡張タグ<!VAR>で宣言されたグローバル変数を利用して5件ずつ表示されます。
サンプルプログラム
page.html
・・・
<!IF ’defined(rslt)’>
<!UNDEFVAR rslt>
<!/IF>
<!VAR rslt SCOPE=GLOBAL> (1)
<!DO "SELECT 製品名,カテゴリ,機能,型番,数量,価格,説明
FROM WL_SCHEMA.製品表" RESULT=rslt> (2)
<!IF ’defined(tbl)’>
<!UNDEFVAR tbl>
<!/IF>
<!VAR tbl SCOPE=GLOBAL VALUE=’listlen(rslt)’>
全部で <!HREPLACE tbl> 件あります.<BR>
<!IF ’!defined(start)’>
<!UNDEFVAR start>
<!/IF>
<!VAR start SCOPE=GLOBAL> (3)
<!SETVAR start 0>
(そのうち,1 件 ~
<!IF ’5 < tbl’> 5
<!ELSE> <!HREPLACE tbl> <!/IF> 件を表示しています)<BR>
<TABLE BORDER=1>
<TR>
<TD>製品名</TD>
<TD>カテゴリ</TD>
<TD>機能</TD>
<TD>型番</TD>
<TD>数量</TD>
<TD>価格</TD>
<TD>説明</TD>
</TR>
<!FOR i 0 4>
<TR>
<TD><!HREPLACE ’rslt[start+i]{製品名}’></TD>
<TD><!HREPLACE ’rslt[start+i]{カテゴリ}’></TD>
<TD><!HREPLACE ’rslt[start+i]{機能}’></TD>
<TD><!HREPLACE ’rslt[start+i]{型番}’></TD>
<TD><!HREPLACE ’rslt[start+i]{数量}’></TD>
<TD><!HREPLACE ’rslt[start+i]{価格}’></TD>
<TD><!HREPLACE ’rslt[start+i]{説明}’></TD>
</TR>
<!/FOR> (4)
</TABLE>
<!IF ’start+5 < tbl’>
<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="page_fmt.html">
<INPUT TYPE="HIDDEN" NAME="DIRECTION" VALUE="NEXT">
<INPUT TYPE="SUBMIT" VALUE="次のページ">
</FORM> (5)
<!/IF>
・・・(1) 変数“rslt”の宣言
検索情報を格納する変数“rslt”を、グローバル変数として宣言し、初期値として0を設定します。
(2) データベースの検索
データベースを全件検索し、結果を“rslt”に格納します。
(3) 変数“start”の宣言
表示件数をカウントする変数“start”を、グローバル変数として宣言し、初期値として0を設定します。
(4) 検索情報の表示
“rslt”に格納されている情報を5件表示します。
(5) 次のページの表示
次のページ(5件以降)を表示する場合、page_fmt.html に処理を引き継ぎます。
page_fmt.html
・・・
全部で <!HREPLACE tbl> 件あります.<BR>
<!IF ’QUERY::DIRECTION eq "PREV"’>
<!SETVAR start ’start-5’>
<!ELSE>
<!SETVAR start ’start+5’>
<!/IF> (6)
(そのうち,<!HREPLACE ’start+1’> 件 ~
<!IF ’start+5 < tbl’><!HREPLACE ’start+5’>
<!ELSE><!HREPLACE tbl><!/IF> 件を表示しています)<BR>
<TABLE BORDER=1>
<TR>
<TD>製品名</TD>
<TD>カテゴリ</TD>
<TD>機能</TD>
<TD>型番</TD>
<TD>数量</TD>
<TD>価格</TD>
<TD>説明</TD>
</TR>
<!FOR i 0 4>
<TR>
<TD><!HREPLACE ’rslt[start+i]{製品名}’></TD>
<TD><!HREPLACE ’rslt[start+i]{カテゴリ}’></TD>
<TD><!HREPLACE ’rslt[start+i]{機能}’></TD>
<TD><!HREPLACE ’rslt[start+i]{型番}’></TD>
<TD><!HREPLACE ’rslt[start+i]{数量}’></TD>
<TD><!HREPLACE ’rslt[start+i]{価格}’></TD>
<TD><!HREPLACE ’rslt[start+i]{説明}’></TD>
</TR>
<!/FOR> (7)
</TABLE>
<BR>
<!IF ’start-5 >= 0’>
<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="page_fmt.html">
<INPUT TYPE="HIDDEN" NAME="DIRECTION" VALUE="PREV">
<INPUT TYPE="SUBMIT" VALUE="前のページ"> (8)
</FORM>
<!/IF>
<!IF ’start+5 < tbl’>
<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="page_fmt.html">
<INPUT TYPE="HIDDEN" NAME="DIRECTION" VALUE="NEXT">
<INPUT TYPE="SUBMIT" VALUE="次のページ"> (9)
</FORM>
<!/IF>
・・・(6) 結果表示画面の設定
[次のページ]ボタンがクリックされて画面が表示された場合と、[前のページ]ボタンがクリックされて画面が表示された場合に分けて、この画面では何番目のデータから表示するかを設定します。
引き継いだ“rslt”と“start”を使用して次の5件を表示します。
(7) 検索情報の表示
引き継いだ“rslt”と“start”を使用して次の5件を表示します。
(8) 前のページの表示
前のページを表示する場合、page_fmt.htmlに処理を引き継ぎます。
(9) 次のページの表示
次のページを表示する場合、page_fmt.htmlに処理を引き継ぎます。
解説
page.html でデータベースの全件検索をし、検索した情報を“rslt”に格納します。
次に、“rslt”から件数のカウントを行う“start”を使用して、最初の5件を表示します。
続けて次の5件を表示する場合、page_fmt.html に処理を引き継ぎます。
page_fmt.html では、page.html から引き継いだ“rslt”から、同じく引き継いだ“start”を利用して次の5件を表示します。
さらに次の5件を表示する場合、または前の5件を表示する場合は、page_fmt.html に処理を引き継ぎます。
ポイント
個別セションでは、グローバル変数を使用することができますが、共有セションでは使用することができません。
共有セションでは、グローバル変数ではなく、cookieを使用します。cookieの使用については、“3.6.11 共有セション”を参照してください。