Symfoware Server WebDBtoolsユーザーズガイド - FUJITSU -
目次 索引 前ページ次ページ

第3章 データベース連携> 3.6 拡張タグの使用例

3.6.5 データ検索:絞込み検索

■処理の内容

指定された文字列をデータベースから検索し、検索結果を表示します。検索結果が不十分の場合、絞込み条件を設定して再度検索し、検索結果を表示します。

■サンプルプログラム

demo.html
・・・
<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="demo_fmt.html">
製品名:<INPUT TYPE="TEXT" NAME="Name1"><BR>
<INPUT TYPE="SUBMIT" NAME="Search" VALUE="検索">
</FORM>
・・・
demo_fmt.html
・・・
<!IF '!defined(cond) '>
    <!UNDEFVAR cond>
<!/IF>
<!VAR cond SCOPE="GLOBAL" VALUE="製品名 LIKE '%$QUERY::Name1%'">
<!DO "SELECT 製品名,カテゴリ,機能,型番 FROM WL_SCHEMA.製品表
          WHERE 製品名 LIKE '%$QUERY::Name1%'" RESULT=rslt ONERROR="ERROR1">
・・・
<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="shibori_fmt.html">
製品名:<INPUT TYPE="TEXT" NAME="Name1"><BR>
<INPUT TYPE="SUBMIT" VALUE="さらに検索">
</FORM>                                                    (1)
・・・

(1) 絞込み条件の設定
絞込み条件として、新しく追加された文字列を“Name1”に設定し、shibori_fmt.html に引き継ぎます。

shibori_fmt.html
<!SETVAR cond "製品名 LIKE '%$QUERY::Name1%' AND $cond">        (2)
<!DO "SELECT 製品名,カテゴリ,型番 FROM WL_SCHEMA.製品表 WHERE $cond" RESULT=rslt>                                                     (3)
<TABLE BORDER=1>
    <TR>
        <TD>製品名</TD>
        <TD>カテゴリ</TD>
        <TD>型番</TD>
    </TR>
    <!FOREACH rslt t>
        <TR>
            <TD>
                <!SETVAR vName 'URLencode(t{製品名}) '>
                <A HREF="$SYSTEM::FMTR?WIT_html=media.html&Name=$vName">
                <!HREPLACE 't{製品名}'></A>
            </TD>
            <TD><!HREPLACE 't{カテゴリ}'></TD>
            <TD><!HREPLACE 't{型番}'></TD>
        </TR>
    <!/FOREACH>
</TABLE>                                                    (4)

(2) 検索条件の設定
現在の検索文字列“cond”と新しい検索文字列“Name1”をANDで関連付けして、再度“cond”として設定します。
(3) データベースの検索
“cond”に設定された文字列条件としてデータベースを検索し、結果を“rslt”に格納します。
(4) 検索結果の表示
検索した情報の製品名、カテゴリ、型番をすべて表示します。

■解説

demo_fmt.html から検索に利用した“cond”と、絞込み検索のために、新しく設定された文字列を“Name”に格納し、データベースを検索するためにshibori_fmt.html へ処理を引き継ぎます。shibori_fmt.html では、demo_fmt.html から引き継いだ“cond”と“Name1”の2つの文字列でデータベースを検索し、結果を表示します。

現在の検索文字列と新しく設定した文字列を“AND”で結ぶことで、絞込み検索を行うことができます。

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007