Symfoware Server WebDBtoolsユーザーズガイド - FUJITSU - |
目次
索引
![]() ![]() |
第3章 データベース連携 | > 3.6 拡張タグの使用例 |
データベースを全件検索し、検索した結果を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の使用については、“共有セション”を参照してください。
目次
索引
![]() ![]() |