Symfoware Server WebDBtoolsユーザーズガイド - FUJITSU - |
目次
索引
![]() ![]() |
第2部 使用手引き編 | > 第6章 データベース連携 | > 6.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の使用については、“共有セション”を参照してください。
目次
索引
![]() ![]() |