処理の内容
指定された範囲内のデータをデータベースから検索し、その結果を表示します。
サンプルプログラム
ifexam.html
・・・ <FORM ACTION="$SYSTEM::FMTR" METHOD="POST"> <INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="ifexam_fmt.html"> 下限:<INPUT TYPE="TEXT" NAME="Low"> 円 ~ 上限:<INPUT TYPE="TEXT" NAME="High"> 円<BR> <INPUT TYPE="SUBMIT" VALUE="検索"> </FORM> (1) ・・・
(1) 上限および下限の設定
指定された上限を“high”、下限を“low”に設定し、ifexam_fmt.html に引き継ぎます。
ifexam_fmt.html
・・・ <!IF ’QUERY::Low ne "" && QUERY::High ne ""’> <!-- 下限も上限も0でない場合 --> <!SETVAR cond "WHERE 価格 >= $QUERY::Low AND 価格 <= $QUERY::High"> (2) <!ELSEIF ’QUERY::Low ne ""’> <!SETVAR cond "WHERE 価格 >= $QUERY::Low"> (2) <!ELSEIF ’QUERY::High ne ""’> <!SETVAR cond "WHERE 価格 <= $QUERY::High"> (2) <!ELSE> <!SETVAR cond ’""’> (2) <!/IF> <!DO "SELECT 製品名,価格 FROM WL_SCHEMA.製品表 $cond" RESULT=rslt> (3) <!IF ’listlen(rslt)==0’> 該当するデータはありません。<BR> <!/IF> <TABLE BORDER=1> <!FOREACH rslt t> <TR> <TD><!HREPLACE ’t{製品名}’></TD> <TD><!HREPLACE ’format(t{価格},"fix:delimit=3")’> 円</TD> </TR> <!/FOREACH> </TABLE> (4) ・・・
(2) “high”、“low”の関係の確認および検索のための文字列の設定
ifexam.html から引き継いだ“high”と“low”の関係を確認します。“high”または“low”に0またはスペースが指定されているかどうかでデータベースを検索するための変数“cond”に設定する文字列が変わります。
(3) データベースの検索
データベースから“cond”に設定された文字列に合致するもの検索し、結果を“rslt”に格納します。
(4) 検索結果の表示
検索した情報の製品名、価格をすべて表示します。
解説
ifexam.html で検索する上限と下限を指定して、それぞれを“high”と“low”に格納し、データベースを検索するためにifexam_fmt.html へ処理を引き継ぎます。 ifexam_fmt.html では、ifexam.html から引き継いだ“high”と“low”の2つの変数を、データベースが検索できるように1つの文字列に変換します。これを検索対象としてデータベースを検索し、結果を表示します。
ポイント
データベースの範囲検索を行う場合、設定された上限、下限の2つの値によってデータベースを検索するための文字列が変わってきます。この場合、サンプルプログラムの(2)で示したように、値によって検索式が選択されるようにすることをお勧めします。