明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

商業(yè)網(wǎng)站應(yīng)用設(shè)計(jì)

[摘要]這篇文章介紹了商業(yè)網(wǎng)站應(yīng)用設(shè)計(jì),包括特價(jià)商品線上查詢系統(tǒng)、線上購(gòu)物系統(tǒng)、房屋仲介線上查詢系統(tǒng)、線上擇友系統(tǒng)、線上買賣交易系統(tǒng)、線上徵求命名系統(tǒng)、雜志線上查詢訂講系統(tǒng)、生活資訊線上查詢系統(tǒng)、電影查詢預(yù)...

這篇文章介紹了商業(yè)網(wǎng)站應(yīng)用設(shè)計(jì),包括特價(jià)商品線上查詢系統(tǒng)、線上購(gòu)物系統(tǒng)、房屋仲介線上查詢系統(tǒng)、線上擇友系統(tǒng)、線上買賣交易系統(tǒng)、線上徵求命名系統(tǒng)、雜志線上查詢訂講系統(tǒng)、生活資訊線上查詢系統(tǒng)、電影查詢預(yù)約系統(tǒng)、電臺(tái)線上查詢系統(tǒng)、線上多人游戲系統(tǒng)等應(yīng)用的點(diǎn)子、設(shè)計(jì)實(shí)例、以及詳細(xì)解說,讓您快速地設(shè)計(jì)出各種商業(yè)的網(wǎng)站應(yīng)用。

商業(yè)網(wǎng)站資料庫(kù)應(yīng)用
商業(yè)上使用網(wǎng)站資料庫(kù),可以透過Internet、或Intranet提供以下的應(yīng)用∶
* 特價(jià)商品線上查詢*
* 線上購(gòu)物*
* 房屋仲介線上查詢*
* 線上擇友*
* 線上買賣交易
* 線上徵求命名
* 線上雜志查詢訂講
* 生活資訊線上查詢
* 電影查詢預(yù)約
* 電臺(tái)線上查詢 
* 線上多人游戲
右上角標(biāo)示*的應(yīng)用,本節(jié)將提供設(shè)計(jì)的范例,并詳加解說。
執(zhí)行本章資料庫(kù)的范例,所用的資料庫(kù)可為Microsoft Access、Microsoft SQL Server、或Text檔案(讀者可修改成其他支援ODBC的資料庫(kù),詳見1-6-5節(jié)),須於NT安裝IIS 3.0,并於「控制臺(tái)」中的「ODBC」,新建一個(gè)名稱為「BookSamp」的資料來(lái)源,驅(qū)動(dòng)程式為「Microsoft Access Driver」、「SQL Server」、或「Microsoft Text 驅(qū)動(dòng)程式」。詳見附錄 范例磁片。

1
特價(jià)商品線上查詢系統(tǒng)
「特價(jià)商品線上查詢系統(tǒng)」,可以透過Internet,查詢價(jià)商品的資訊。
透過Internet,連線上公司、百貨公司、超市、量販店的「特價(jià)商品線上查詢系統(tǒng)」,即可線上查詢今天特價(jià)商品的資訊,包括特價(jià)商品的價(jià)格、外觀圖片等。
設(shè)計(jì)實(shí)例
讓我們執(zhí)行一個(gè)實(shí)例。
( 范例 data6.asp 特價(jià)商品線上查詢
若要查詢資料,於用戶端使用瀏覽器,瀏覽本書所附安裝於網(wǎng)站伺服器的data6.asp,即可顯示查詢的結(jié)果如下,包括名稱、外觀圖片、原價(jià)、特價(jià)∶ 

設(shè)計(jì)實(shí)例詳細(xì)解說
建立資料表
首先使用Microsoft Access、Microsoft SQL Server 、Text檔案、或任何一種支援ODBC的資料庫(kù),建立一個(gè)資料表Goods。
於欄名GIF、NAME、PRICE1、PRICE2分別輸入外觀圖片檔名、名稱、原價(jià)、特價(jià),若為特價(jià)商品時(shí),於MARK欄位輸入「*」。
使用Microsoft Access建立一個(gè)資料表Goods,如下∶ 

或使用Microsoft SQL Server建立一個(gè)資料表Goods,如下∶ 

或使用Text檔案建立一個(gè)資料表Goods,如下∶ 

查詢資料庫(kù)
接著,使用「Server.CreateObject」建立連線的物件,并使用「Open」開啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,設(shè)定SQL指令,查詢資料表Goods中欄位MARK為「*」的特價(jià)商品,下個(gè)「Execute」指令,即可開始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
程式碼如下∶
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT NAME,GIF,PRICE1,PRICE2 FROM Goods WHERE MARK = '*'"
Set RS = Conn.Execute(SQL)
接著,要顯示查詢的結(jié)果了。
首先,由「 IF RS.EOF THEN ...」判斷是否找到欄位MARK為「*」的特價(jià)商品,若RS.EOF為TRUE,則顯示「今日無(wú)特價(jià)商品」。
程式碼,如下∶
查詢結(jié)果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#FF0000">今日無(wú)特價(jià)商品</FONT>
若找到欄位MARK為「*」的特價(jià)商品,則顯示特價(jià)商品之名稱、外觀圖片、原價(jià)、特價(jià),分別由RecordSets物件的RS(0)、RS(1) 、RS(2)、RS(3) 取得。
RS.Fields.Count表示RecordSets物件的欄位數(shù),由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各欄位的資料。配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。
若還有下一筆資料,使用RS.MoveNext移到下一筆的位置。
程式碼,如下∶
<% ELSE %>
<FONT COLOR="#0000ff">特價(jià)商品如下:</FONT> 

<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>名稱</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>外觀</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>原價(jià)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>特價(jià)</FONT></TD>
</TR>


<% Do While Not RS.EOF %>
<TR> 

<% For i = 0 to RS.Fields.Count - 1 %>
<TD BGCOLOR="f7efde" ALIGN=CENTER>
<% If RS(i).Name = "GIF" Then %>
<img src= <%= RS(i) %> width=50 height=50> 

<% Else %>
<FONT COLOR="#0000"><%= RS(i) %></FONT></TD>
<% END IF %> 

<% Next %>
</TR>
<%
RS.MoveNext
Loop 

RS.Close
Conn.Close
%>
</TABLE> 

<% END IF %>
最後,使用RS.Close關(guān)閉RecordSet,使用Conn.Close關(guān)閉資料庫(kù)。
全部的程式碼,如下∶
<HTML>
<HEAD>
<TITLE>特價(jià)商品線上查詢系統(tǒng)</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=big5">
</HEAD>
<CENTER> 

<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=+2 COLOR="#0000FF">特價(jià)商品線上查詢系統(tǒng)</FONT>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT NAME,GIF,PRICE1,PRICE2 FROM Goods WHERE MARK = '*'"
Set RS = Conn.Execute(SQL)
%> 

<HR>
查詢結(jié)果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#FF0000">今日無(wú)特價(jià)商品</FONT> 

<% ELSE %>
<FONT COLOR="#0000ff">特價(jià)商品如下:</FONT>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>名稱</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>外觀</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>原價(jià)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>特價(jià)</FONT></TD>
</TR>


<% Do While Not RS.EOF %>
<TR> 

<% For i = 0 to RS.Fields.Count - 1 %>
<TD BGCOLOR="f7efde" ALIGN=CENTER> 

<% If RS(i).Name = "GIF" Then %>
<img src= <%= RS(i) %> width=50 height=50> 

<% Else %>
<FONT COLOR="#0000"><%= RS(i) %></FONT></TD>
<% END IF %> 

<% Next %>
</TR> 

<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%> 

</TABLE> 

<% END IF %> 

<HR>
</CENTER>
</BODY>
</HTML>
學(xué)會(huì)了嗎?











2
線上購(gòu)物系統(tǒng)
「線上購(gòu)物系統(tǒng)」,可以透過Internet,以使用信用卡付款的方式,訂購(gòu)商品。
一般客戶,透過Internet,連線上公司的「線上購(gòu)物系統(tǒng)」,輸入訂購(gòu)商品與數(shù)量、信用卡付款資料,即可以完成線上訂購(gòu)商品的手續(xù)。
可線上查詢商品的資訊,包括商品的價(jià)格、外觀圖片等。
訂購(gòu)時(shí),線上購(gòu)物系統(tǒng)提供可以增加、取消、查詢訂購(gòu)的功能。
訂購(gòu)後,可線上查詢處理的結(jié)果,包括檢查存貨情況,告之預(yù)定交貨的時(shí)間、和交貨數(shù)量。
自動(dòng)印出每日的訂購(gòu)商品、和訂購(gòu)數(shù)量,給相關(guān)部門出貨、向信用卡公司收款之用。
這個(gè)「線上購(gòu)物系統(tǒng)」,也可用於連鎖店、直銷員、或經(jīng)銷商向總公司訂貨之用,在電腦輸入密碼、輸入訂購(gòu)商品、與數(shù)量,即可以完成線上訂購(gòu)商品的手續(xù)。
設(shè)計(jì)實(shí)例
讓我們執(zhí)行一個(gè)實(shí)例。
( 范例 data14.asp 線上購(gòu)物
若要線上購(gòu)物,於用戶端使用瀏覽器,瀏覽本書所附安裝於網(wǎng)站伺服器的data14.asp,於「信用卡種類」等處選擇和輸入信用卡的資料,并輸入、「消費(fèi)總金額」、「商品代號(hào)」、「數(shù)量」後,按下「線上購(gòu)物」按鈕,即可顯示線上購(gòu)物的結(jié)果,包括信用卡的資料、訂購(gòu)的資料、訂購(gòu)單號(hào)碼如下∶ 

取消購(gòu)物
線上購(gòu)物後,可以取消所訂購(gòu)的記錄,於「訂購(gòu)單號(hào)碼」處選擇待取消的訂購(gòu)單號(hào)碼,按下「取消購(gòu)物」按鈕,即可顯示取消訂購(gòu)單的結(jié)果如下∶ 

若待取消的訂購(gòu)單尚未訂購(gòu)過,則取消訂購(gòu)單時(shí)將顯示「找不到訂購(gòu)單」如下∶ 

查詢購(gòu)物單
線上購(gòu)物後,可以查詢所有訂購(gòu)的記錄,僅須於「信用卡號(hào)」處輸入信用卡號(hào)後,按下「查詢購(gòu)物單」按鈕,即可顯示查詢所有訂購(gòu)的記錄如下∶ 

查詢購(gòu)物單時(shí),若尚未訂購(gòu)過,則查詢購(gòu)物單時(shí)將顯示「找不到訂購(gòu)單」如下∶ 

設(shè)計(jì)實(shí)例詳細(xì)解說
建立資料表
首先使用Microsoft Access、Microsoft SQL Server 、Text檔案、或任何一種支援ODBC的資料庫(kù),建立一個(gè)資料表GoodsTrans,儲(chǔ)存訂購(gòu)單記錄。
建立欄位ID、TYPE、VALID、GOODS、QTY、AMOUNT、SN,分別代表一個(gè)訂購(gòu)記錄的信用卡號(hào)、信用卡種類、信用卡有效期限、持有人姓名、消費(fèi)總金額、商品代號(hào)、數(shù)量、訂購(gòu)單號(hào)碼。建立資料表時(shí)不必輸入資料。
使用Microsoft Access建立一個(gè)資料表GoodsTrans,如下∶ 

或使用Microsoft SQL Server建立一個(gè)資料表GoodsTrans,如下∶ 

或使用Text檔案建立一個(gè)資料表GoodsTrans,如下∶ 

設(shè)計(jì)輸入的表單
接著,設(shè)計(jì)輸入的表單form,線上購(gòu)物時(shí),當(dāng)客戶選擇信用卡種類TYPE1,輸入信用卡號(hào)ID1,信用卡有效期限VALID1,持有人姓名NAME1,消費(fèi)總金額AMOUNT1,商品代號(hào)GOODS1,數(shù)量QTY1,按下「線上購(gòu)物」按鈕submit時(shí),即使用POST的方式將輸入資料傳送到網(wǎng)站伺服器,并執(zhí)行於「form action=...」所設(shè)定的data14.asp檔案(與form為同一個(gè)ASP檔案),程式碼如下∶
線上購(gòu)物, 請(qǐng)輸入以下資料:<br>
<form action="data14.asp" method="post">
<FONT COLOR="#FF8080">■ </FONT>信用卡種類: 

<select name="TYPE1">
<OPTION SELECTED>VISA
<OPTION>American Express
<OPTION>Master Card
</select><br> 
<FONT COLOR="#FF8080">■ </FONT>信用卡號(hào): 
<INPUT TYPE=TEXT VALUE="1234-5678-9012-3456" NAME="ID1" SIZE=19><BR> 
<FONT COLOR="#FF8080">■ </FONT>信用卡有效期限: 
<INPUT TYPE=TEXT VALUE="8906" NAME="VALID1" SIZE=4><BR> 
<FONT COLOR="#FF8080">■ </FONT>持有人姓名: 
<INPUT TYPE=TEXT VALUE="李商隱" NAME="NAME1" SIZE=8><BR> 
<FONT COLOR="#FF8080">■ </FONT>消費(fèi)總金額: 
<INPUT TYPE=TEXT VALUE="12000" NAME="AMOUNT1" SIZE=6><P> 
<FONT COLOR="#FF8080">■ </FONT>商品代號(hào) (如123456): 
<INPUT TYPE=TEXT VALUE="123456" NAME="GOODS1" SIZE=10><BR> 
<FONT COLOR="#FF8080">■ </FONT>數(shù)量: 
<INPUT TYPE=TEXT VALUE="10" NAME="QTY1" SIZE=6><BR> 
<INPUT TYPE=submit VALUE="線上購(gòu)物" name="Action"><p> 
<HR WIDTH = 30% ALIGN=LEFT>
<FONT COLOR="#FF0000">■ </FONT>訂購(gòu)單號(hào)碼: 
<INPUT TYPE=TEXT NAME="SN1" SIZE=12>
<INPUT TYPE=submit VALUE="取消購(gòu)物" name="Action"><P> 
<FONT COLOR="#00FF00">■ </FONT>信用卡號(hào): 
<INPUT TYPE=TEXT VALUE="1234-5678-9012-3456" NAME="ID2" SIZE=19>
<INPUT TYPE=submit VALUE="查詢購(gòu)物單" name="Action"><P>
</form> 
<form>
<FONT COLOR="#0000FF">■ </FONT><INPUT TYPE=button VALUE="查詢特價(jià)商品" OnClick="location.href='data6.asp'">
</form>
取消線上購(gòu)物時(shí),客戶輸入訂購(gòu)單號(hào)碼SN1,按下「取消購(gòu)物」按鈕submit送到網(wǎng)站伺服器。
查詢購(gòu)物單時(shí),客戶輸入信用卡號(hào)ID2,按下「查詢購(gòu)物單」按鈕submit送到網(wǎng)站伺服器。
若按下「查詢特價(jià)商品」按鈕,將執(zhí)行data6.asp,以顯示特價(jià)商品。
當(dāng)網(wǎng)站伺服器執(zhí)行data14.asp檔案時(shí),首先經(jīng)由Request.Form("Action")取得所按submit按鈕上的顯示文字VALUE,Left(Request.Form("Action"),2)系只取前兩個(gè)中文字,若Request.Form("Action")非空白時(shí),表示為表單輸入所呼叫執(zhí)行。
由「SELECT CASE Left(Request.Form("Action"),2) 」判斷是按了那個(gè)按鈕。若按鈕上前兩個(gè)字為「線上」時(shí),則執(zhí)行AddGoods() 副程式;若為「取消」時(shí),則執(zhí)行DeleteGoods() 副程式;若為「查詢」時(shí),則執(zhí)行CheckGoods() 副程式。
<%
SELECT CASE Left(Request.Form("Action"),2)
CASE "線上"
AddGoods()
CASE "取消"
DeleteGoods()
CASE "查詢"
CheckGoods()
END SELECT
%>
線上購(gòu)物
按了「線上購(gòu)物」按鈕時(shí),將執(zhí)行AddGoods() 副程式。
首先,使用「Server.CreateObject」建立連線的物件,并使用「Open」開啟待存取查詢資料庫(kù)BookSamp。
於GoodsTrans資料表,使用「INSERT INTO...」指令新增一筆資料。此筆新增資料的欄位ID、TYPE、VALID、GOODS、QTY、AMOUNT為所輸入的表單資料。訂購(gòu)單號(hào)碼欄位SN系設(shè)定為訂購(gòu)時(shí)的日期時(shí)間。
程式碼如下∶
Sub AddGoods()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa","" 
SNNO = YEAR(DATE()) & MONTH(DATE()) & DAY(DATE()) & HOUR(NOW) & MINUTE(NOW) & SECOND(NOW) 
SQL = "INSERT INTO GoodsTrans VALUES('" & 
Request.Form("ID1") & "','" & Request.Form("TYPE1") & "','" & Request.Form("VALID1") & "','" & LEFT(Request.Form("NAME1"),3) & "','" & Request.Form("GOODS1") & "','" & Request.Form("QTY1") & "','" & Request.Form("AMOUNT1") & "','" & SNNO & "')" 
Set RS = Conn.Execute(SQL)
接著,要顯示執(zhí)行的結(jié)果了?傆(jì)兩個(gè)表格,一個(gè)為信用卡資料表,另一個(gè)為訂購(gòu)資料表。
顯示執(zhí)行的結(jié)果時(shí),配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。
程式碼,如下∶
<FONT COLOR="#0000FF">線上購(gòu)物結(jié)果:</FONT><br>
<FONT COLOR="#0000FF">訂購(gòu) OK ! 訂購(gòu)單號(hào)碼為 <% =SNNO %></FONT><BR>
信用卡資料:<BR>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>信用卡種類</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>信用卡號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>有效期限</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>姓名</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>消費(fèi)總金額</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("TYPE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("VALID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("NAME1"),3) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("AMOUNT1") %></FONT></TD>
</TR> 
</TABLE>
<BR>
訂購(gòu)資料:<BR>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>商品代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>消費(fèi)總金額</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>訂購(gòu)單號(hào)碼</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("GOODS1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("QTY1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("AMOUNT1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =SNNO %></FONT></TD>
</TR> 
</TABLE> 
<%
Conn.Close
End Sub %>
最後,使用Conn.Close關(guān)閉資料庫(kù)。
取消購(gòu)物
按了「取消購(gòu)物」按鈕時(shí),將執(zhí)行DeleteGoods() 副程式。
首先,先尋找到所待取消的訂購(gòu)單,使用「Server.CreateObject」建立連線的物件,并使用「Open」開啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,於GoodsTrans資料表,設(shè)定SQL指令,查詢訂購(gòu)單號(hào)碼欄位符合所輸入Request.Form("SN1")的資料,下個(gè)「Execute」指令,即可開始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判斷是否找到所待取消的訂購(gòu)單,若RS.EOF為TRUE,表示找不到此訂購(gòu)單,則顯示「找不到訂購(gòu)單」。
程式碼如下∶
<%
Sub DeleteGoods()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT GOODS,QTY,AMOUNT,SN FROM GoodsTrans WHERE SN = '" & Request.Form("SN1") & "'" 
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">取消訂購(gòu)單結(jié)果:</FONT><br> 
<% 
IF RS.EOF THEN 
'找不到 ! 
%>
<FONT COLOR="#FF0000">找不到訂購(gòu)單 <% =Request.Form("SN1") %> !</FONT>
若找到所待取消的訂購(gòu)單,則於GoodsTrans資料表,使用「DELETE FROM...」指令刪除此筆訂購(gòu)單資料。
接著,顯示執(zhí)行的結(jié)果,配合<TABLE>表格的HTML語(yǔ)法,將於GoodsTrans資料表刪除的訂購(gòu)單資料,填入表格的各欄位當(dāng)中,以顯示出來(lái)。
程式碼,如下∶
<% ELSE 
'取消訂購(gòu)單 ! 
%>
<FONT COLOR="#FF0000">訂購(gòu)單 <% =Request.Form("SN1") %> 已經(jīng)取消 !</FONT> 
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>商品代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>消費(fèi)總金額</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>訂購(gòu)單號(hào)碼</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(0) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(1) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(3) %></FONT></TD>
</TR> 
</TABLE>
<%
'GoodsTrans刪除一筆
SQL = "DELETE FROM GoodsTrans WHERE SN = '" & Request.Form("SN1") & "'"
Set RS = Conn.Execute(SQL)
END IF 
Conn.Close
End Sub %>
最後,使用Conn.Close關(guān)閉資料庫(kù)。
查詢購(gòu)物
按了「查詢購(gòu)物單」按鈕時(shí),執(zhí)行CheckGoods() 副程式。
首先,先尋找到所待查詢的購(gòu)物單,使用「Server.CreateObject」建立連線的物件,并使用「Open」開啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,於GoodsTrans資料表,設(shè)定SQL指令,查詢信用卡號(hào)ID符合所輸入Request.Form("ID2")的資料,下個(gè)「Execute」指令,即可開始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判斷是否找到所待查詢信用卡號(hào)的所有購(gòu)物單記錄,若RS.EOF為TRUE,表示找不到此信用卡號(hào)的購(gòu)物單,則顯示「信用卡號(hào)...找不到訂購(gòu)單」。
程式碼如下∶
<%
Sub CheckGoods()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT GOODS,QTY,AMOUNT,SN FROM GoodsTrans WHERE ID = '" & Request.Form("ID2") & "'"
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">查詢訂購(gòu)單結(jié)果:</FONT><br>
<% 
IF RS.EOF THEN 
'找不到訂購(gòu)單 ! 
%>
信用卡號(hào) <% =Request.Form("ID2") %> <FONT COLOR="#FF0000">找不到訂購(gòu)單 !</FONT>
若找到信用卡號(hào)ID符合所輸入Request.Form("ID2")的資料,則顯示查詢的結(jié)果,包括商品代號(hào)、數(shù)量、消費(fèi)總金額、訂購(gòu)單號(hào)碼,分別由RecordSets物件的RS(0)、RS(1)、RS(2)、RS(3)取得。
RS.Fields.Count表示RecordSets物件的欄位數(shù),由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各欄位的資料。配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。
由「If INT(j/2)*2 <> j Then... 」判斷顯示奇偶筆的訂購(gòu)單資料,奇偶列顯示不同的顏色。
若還有下一筆資料,使用RS.MoveNext移到下一筆的位置。
程式碼,如下∶
<% ELSE %>
<% '有訂購(gòu)單 ! %>
信用卡號(hào) <% =Request.Form("ID2") %> <FONT COLOR="#0000ff">訂購(gòu)單如下:</FONT> 
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>商品代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>消費(fèi)總金額</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>訂購(gòu)單號(hào)碼</FONT></TD>
</TR>
<% j = 1 %> 
<% Do While Not RS.EOF %>
<TR> 
<% For i = 0 to RS.Fields.Count - 1 %>
<% If INT(j/2)*2 <> j Then %>
<TD BGCOLOR="E8FFFF" ALIGN=CENTER>
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD> 
<% Else %>
<TD ALIGN=CENTER BGCOLOR="#C0FFFF">
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD>
<% END IF %> 
<% Next %>
</TR> 
<%
RS.MoveNext
j = j + 1
Loop
%>
</TABLE> 
<% END IF 
RS.Close
Conn.Close
End Sub %>
最後,使用RS.Close關(guān)閉RecordSet,使用Conn.Close關(guān)閉資料庫(kù)。
全部的程式碼,如下∶
<HTML>
<HEAD>
<TITLE>線上購(gòu)物系統(tǒng)</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=big5">
</HEAD> 
<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=+2 COLOR="#0000FF">線上購(gòu)物系統(tǒng)</FONT>
<%
SELECT CASE Left(Request.Form("Action"),2) 
CASE "線上"
AddGoods() 
CASE "取消"
DeleteGoods() 
CASE "查詢"
CheckGoods() 
END SELECT
Sub AddGoods()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SNNO = YEAR(DATE()) & MONTH(DATE()) & DAY(DATE()) & HOUR(NOW) & MINUTE(NOW) & SECOND(NOW) 
SQL = "INSERT INTO GoodsTrans VALUES('" & Request.Form("ID1") & "','" & Request.Form("TYPE1") & "','" & Request.Form("VALID1") & "','" & LEFT(Request.Form("NAME1"),3) & "','" & Request.Form("GOODS1") & "','" & Request.Form("QTY1") & "','" & Request.Form("AMOUNT1") & "','" & SNNO & "')" 
Set RS = Conn.Execute(SQL)
%> 
<HR>
<FONT COLOR="#0000FF">線上購(gòu)物結(jié)果:</FONT><br>
<FONT COLOR="#0000FF">訂購(gòu) OK ! 訂購(gòu)單號(hào)碼為 <% =SNNO %></FONT><BR>
信用卡資料:<BR>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>信用卡種類</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>信用卡號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>有效期限</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>姓名</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>消費(fèi)總金額</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("TYPE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("VALID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("NAME1"),3) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("AMOUNT1") %></FONT></TD>
</TR> 
</TABLE>
<BR> 
訂購(gòu)資料:<BR>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>商品代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>消費(fèi)總金額</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>訂購(gòu)單號(hào)碼</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("GOODS1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("QTY1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("AMOUNT1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =SNNO %></FONT></TD>
</TR> 
</TABLE> 
<%
Conn.Close
End Sub 
%> 
<%
Sub DeleteGoods()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT GOODS,QTY,AMOUNT,SN FROM GoodsTrans WHERE SN = '" & Request.Form("SN1") & "'"
Set RS = Conn.Execute(SQL)
%> 
<HR>
<FONT COLOR="#0000FF">取消訂購(gòu)單結(jié)果:</FONT><br> 
<% 
IF RS.EOF THEN 
'找不到 ! 
%>
<FONT COLOR="#FF0000">找不到訂購(gòu)單 <% =Request.Form("SN1") %> !</FONT> 
<% ELSE 
'取消訂購(gòu)單 ! 
%>
<FONT COLOR="#FF0000">訂購(gòu)單 <% =Request.Form("SN1") %> 已經(jīng)取消 !</FONT> 
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>商品代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>消費(fèi)總金額</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>訂購(gòu)單號(hào)碼</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(0) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(1) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(3) %></FONT></TD>
</TR> 
</TABLE>
<% 
'GoodsTrans刪除一筆
SQL = "DELETE FROM GoodsTrans WHERE SN = '" & Request.Form("SN1") & "'"
Set RS = Conn.Execute(SQL)
END IF 
Conn.Close
End Sub 
%> 
<%
Sub CheckGoods()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa","" 
SQL = "SELECT GOODS,QTY,AMOUNT,SN FROM GoodsTrans WHERE ID = '" & Request.Form("ID2") & "'" 
Set RS = Conn.Execute(SQL)
%> 
<HR>
<FONT COLOR="#0000FF">查詢訂購(gòu)單結(jié)果:</FONT><br>
<% 
IF RS.EOF THEN 
'找不到訂購(gòu)單 ! 
%> 
信用卡號(hào) <% =Request.Form("ID2") %> <FONT COLOR="#FF0000">找不到訂購(gòu)單 !</FONT> 
<% ELSE %>
<% '有訂購(gòu)單 ! %>
信用卡號(hào) <% =Request.Form("ID2") %> <FONT COLOR="#0000ff">訂購(gòu)單如下:</FONT> 
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>商品代號(hào)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>數(shù)量</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>消費(fèi)總金額</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>訂購(gòu)單號(hào)碼</FONT></TD>
</TR>
<% j = 1 %> 
<% Do While Not RS.EOF %>
<TR> 
<% For i = 0 to RS.Fields.Count - 1 %>
<% If INT(j/2)*2 <> j Then %>
<TD BGCOLOR="E8FFFF" ALIGN=CENTER>
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD> 
<% Else %>
<TD ALIGN=CENTER BGCOLOR="#C0FFFF">
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD>
<% END IF %> 
<% Next %>
</TR> 
<%
RS.MoveNext
j = j + 1
Loop
%>
</TABLE> 
<% END IF 
RS.Close
Conn.Close
End Sub 
%>
<HR>
線上購(gòu)物, 請(qǐng)輸入以下資料:<br>
<form action="data14.asp" method="post">
<FONT COLOR="#FF8080">■ </FONT>信用卡種類: 
<select name="TYPE1">
<OPTION SELECTED>VISA
<OPTION>American Express
<OPTION>Master Card
</select><br> 
<FONT COLOR="#FF8080">■ </FONT>信用卡號(hào): 
<INPUT TYPE=TEXT VALUE="1234-5678-9012-3456" NAME="ID1" SIZE=19><BR> 
<FONT COLOR="#FF8080">■ </FONT>信用卡有效期限: 
<INPUT TYPE=TEXT VALUE="8906" NAME="VALID1" SIZE=4><BR> 
<FONT COLOR="#FF8080">■ </FONT>持有人姓名: 
<INPUT TYPE=TEXT VALUE="李商隱" NAME="NAME1" SIZE=8><BR> 
<FONT COLOR="#FF8080">■ </FONT>消費(fèi)總金額: 
<INPUT TYPE=TEXT VALUE="12000" NAME="AMOUNT1" SIZE=6><P> 
<FONT COLOR="#FF8080">■ </FONT>商品代號(hào) (如123456): 
<INPUT TYPE=TEXT VALUE="123456" NAME="GOODS1" SIZE=10><BR> 
<FONT COLOR="#FF8080">■ </FONT>數(shù)量: 
<INPUT TYPE=TEXT VALUE="10" NAME="QTY1" SIZE=6><BR> 
<INPUT TYPE=submit VALUE="線上購(gòu)物" name="Action"><p> 
<HR WIDTH = 30% ALIGN=LEFT>
<FONT COLOR="#FF0000">■ </FONT>訂購(gòu)單號(hào)碼: 
<INPUT TYPE=TEXT NAME="SN1" SIZE=12>
<INPUT TYPE=submit VALUE="取消購(gòu)物" name="Action"><P> 
<FONT COLOR="#00FF00">■ </FONT>信用卡號(hào): 
<INPUT TYPE=TEXT VALUE="1234-5678-9012-3456" NAME="ID2" SIZE=19>
<INPUT TYPE=submit VALUE="查詢購(gòu)物單" name="Action"><P>
</form> 
<form>
<FONT COLOR="#0000FF">■ </FONT><INPUT TYPE=button VALUE="查詢特價(jià)商品" OnClick="location.href='data6.asp'">
</form>
<HR> 
</BODY>
</HTML>

3
房屋仲介線上查詢系統(tǒng)
「房屋仲介線上查詢系統(tǒng)」,可以透過Internet,查詢到符合條件要賣的房子資訊。
想要買房子的人,透過Internet,連線上房屋仲介公司的「房屋仲介線上查詢系統(tǒng)」,輸入最高預(yù)算、地點(diǎn)、坪數(shù)等選擇,即可以查詢到符合條件要賣的房子資訊。
設(shè)計(jì)實(shí)例
讓我們執(zhí)行一個(gè)實(shí)例。
( 范例 data5.asp 房屋仲介線上查詢
若要查詢資料,於用戶端使用瀏覽器,瀏覽本書所附安裝於網(wǎng)站伺服器的data5.asp,於「地點(diǎn)」處選擇購(gòu)屋地點(diǎn)譬如臺(tái)北市,於「最高預(yù)算」處輸入購(gòu)屋最高預(yù)算後譬如1000(萬(wàn)),按下「查榜」按鈕,即可顯示查詢的結(jié)果如下,包括地點(diǎn)、外觀圖片、價(jià)格∶ 
找不到符合地點(diǎn)和預(yù)算的房子時(shí),必須告訴人家,譬如輸入「最高預(yù)算」300時(shí),將顯示「找不到」如下∶ 

設(shè)計(jì)實(shí)例詳細(xì)解說
建立資料表
首先使用Microsoft Access、Microsoft SQL Server 、Text檔案、或任何一種支援ODBC的資料庫(kù),建立一個(gè)資料表House。
使用Microsoft Access建立一個(gè)資料表House,如下∶ 
於欄名GIF、PLACE、PRICE分別輸入外觀圖片檔案、地點(diǎn)、價(jià)格的資料。
或使用Microsoft SQL Server建立一個(gè)資料表House,如下∶ 
或使用Text檔案建立一個(gè)資料表House,如下∶ 
設(shè)計(jì)輸入表單
接著,設(shè)計(jì)輸入表單form,以讓查詢者於選擇購(gòu)屋地點(diǎn)city,和輸入最高預(yù)算money,按下「查詢」按鈕submit時(shí),即使用POST的方式將輸入資料傳送到網(wǎng)站伺服器,并執(zhí)行於「form action=...」所設(shè)定的data5.asp檔案(與form為同一個(gè)ASP檔案),程式碼如下∶
<form action="data5.asp" method="post">
地點(diǎn): 
<select name="city">
<OPTION SELECTED>臺(tái)北市
<OPTION>新店市
<OPTION>中和市
</select> 
最高預(yù)算($萬(wàn)): 
<INPUT TYPE=TEXT VALUE="1500" NAME="money" SIZE=10> 
<INPUT TYPE=submit VALUE="查詢" name="Action">
</form>
網(wǎng)站伺服器執(zhí)行data5.asp檔案,首先經(jīng)由Request.Form("money") 取得查詢者所輸入的最高預(yù)算money,若money非空白時(shí),表示為表單輸入所呼叫執(zhí)行。
查詢資料庫(kù)
使用「Server.CreateObject」建立連線的物件,并使用「Open」開啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,設(shè)定SQL指令,查詢符合購(gòu)屋地點(diǎn)Request.Form("city")和最高預(yù)算Request.Form("money")的資料,下個(gè)「Execute」指令,即可開始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
程式碼如下∶
IF Request.Form("money") THEN
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT PLACE,GIF,PRICE FROM House WHERE PRICE <= " & Request.Form("money") & " AND PLACE = '" & LEFT(Request.Form("city"),3) &"'"
Set RS = Conn.Execute(SQL)
接著,要顯示查詢的結(jié)果了。
首先,由「 IF RS.EOF THEN ...」判斷是否找到符合購(gòu)屋地點(diǎn)Request.Form("city")和最高預(yù)算Request.Form("money")的資料,若RS.EOF為TRUE,則顯示「找不到地點(diǎn)...或預(yù)算...萬(wàn)以下的房子 !」。
程式碼,如下∶
查詢結(jié)果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#FF0000">找不到地點(diǎn) <% =LEFT(Request.Form("city"),3) %> <BR>
或預(yù)算 $ <% =Request.Form("money") %> 萬(wàn) 以下的房子 !</FONT>
若找到符合查詢條件的資料,則顯示查詢的結(jié)果,包括地點(diǎn)、外觀圖片、價(jià)格,分別由RecordSets物件的RS(0)、RS(1) 、RS(2) 取得。
RS.Fields.Count表示RecordSets物件的欄位數(shù),由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各欄位的資料。配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。
由「If RS(i).Name = "GIF" Then...」判斷欄位是否為外觀圖片GIF,若是則由「<img src= <%= RS(i) %> width=50 height=50>」的HTML碼顯示外觀圖片。
若還有下一筆資料,使用RS.MoveNext移到下一筆的位置。
程式碼,如下∶
<% ELSE %>
<FONT COLOR="#0000ff">地點(diǎn) <% =LEFT(Request.Form("city"),3) %> <BR>
和預(yù)算 $ <% =Request.Form("money") %> 萬(wàn) 以下的房子如下:</FONT> 
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1> 
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>地點(diǎn)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>外觀</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>價(jià)格($萬(wàn))</FONT></TD>
</TR>
<% Do While Not RS.EOF %>
<TR> 
<% For i = 0 to RS.Fields.Count - 1 %>
<TD BGCOLOR="f7efde" ALIGN=CENTER> 
<% If RS(i).Name = "GIF" Then %>
<img src= <%= RS(i) %> width=50 height=50> 
<% Else %>
<FONT COLOR="#0000"><%= RS(i) %></FONT></TD>
<% END IF %> 
<% Next %>
</TR> 
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE> 
<% END IF %>
最後,使用RS.Close關(guān)閉RecordSet,使用Conn.Close關(guān)閉資料庫(kù)。
全部的程式碼,如下∶
<HTML>
<HEAD>
<TITLE>房屋仲介線上查詢系統(tǒng)</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=big5">
</HEAD>
<CENTER> 
<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=+2 COLOR="#0000FF">房屋仲介線上查詢系統(tǒng)</FONT> 
<%
IF Request.Form("money") THEN
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT PLACE,GIF,PRICE FROM House WHERE PRICE <= " & Request.Form("money") & " AND PLACE = '" & LEFT(Request.Form("city"),3) &"'"
Set RS = Conn.Execute(SQL)
%> 
<HR>
查詢結(jié)果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#FF0000">找不到地點(diǎn) <% =LEFT(Request.Form("city"),3) %> <BR>
或預(yù)算 $ <% =Request.Form("money") %> 萬(wàn) 以下的房子 !</FONT> 
<% ELSE %>
<FONT COLOR="#0000ff">地點(diǎn) <% =LEFT(Request.Form("city"),3) %> <BR>
和預(yù)算 $ <% =Request.Form("money") %> 萬(wàn) 以下的房子如下:</FONT> 
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>地點(diǎn)</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>外觀</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>價(jià)格($萬(wàn))</FONT></TD>
</TR>
<% Do While Not RS.EOF %>
<TR> 
<% For i = 0 to RS.Fields.Count - 1 %>
<TD BGCOLOR="f7efde" ALIGN=CENTER> 
<% If RS(i).Name = "GIF" Then %>
<img src= <%= RS(i) %> width=50 height=50> 
<% Else %>
<FONT COLOR="#0000"><%= RS(i) %></FONT></TD>
<% END IF %> 
<% Next %>
</TR> 
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE> 
<% END IF %>
<HR>
<% END IF %> 
<BR> 
<form action="data5.asp" method="post">
地點(diǎn): 
<select name="city">
<OPTION SELECTED>臺(tái)北市
<OPTION>新店市
<OPTION>中和市
</select> 
最高預(yù)算($萬(wàn)): 
<INPUT TYPE=TEXT VALUE="1500" NAME="money" SIZE=10> 
<INPUT TYPE=submit VALUE="查詢" name="Action">
</form> 
<HR>
</CENTER>
</BODY>
</HTML>

4
線上擇友系統(tǒng)
「線上擇友系統(tǒng)」,可以透過Internet,提供線上擇友的功能。
想要被擇友的人,透過Internet,連線上「線上擇友系統(tǒng)」,根據(jù)分類,輸入自己的學(xué)歷、興趣等分類,以及姓名、E-Mail位址。想要擇友的人,依照分類,選擇符合擇友條件的分類,電腦將隨機(jī)找出數(shù)名符合擇友條件者的姓名、E-Mail位址,以供擇友者與之連絡(luò)。
設(shè)計(jì)實(shí)例
讓我們執(zhí)行一個(gè)實(shí)例。
( 范例 data17.asp 線上擇友
若要線上擇友,於用戶端使用瀏覽器,瀏覽本書所附安裝於網(wǎng)站伺服器的data17.asp,於「性別」、和「興趣」處選擇選擇擇友條件後,按下「線上擇友」按鈕,即可顯示線上擇友的結(jié)果如下∶ 
將顯示有幾筆符合擇友條件,再隨機(jī)取得一筆,每次線上擇友可能得到不同的結(jié)果,顯示包括性別、E-Mail位址、性別、和興趣等資料,直接按下藍(lán)色的「E-Mail位址」即可自動(dòng)啟動(dòng)E-Mail軟體,并將此「E-Mail位址」復(fù)制到收件人的欄位當(dāng)中,直接寫E-Mail與之連絡(luò)
若找不到符合擇友條件的記錄時(shí),則線上擇友時(shí)將顯示「報(bào)歉! 找不到符合擇友條件的朋友 !」,如下∶ 
報(bào)名
若要加入「被擇友」的行列,必須報(bào)名線上擇友,於「姓名」、和「E-Mail位址」處輸入自己的基本資料,於「性別」、和「興趣」處選擇選擇被擇友的條件後,按下「報(bào)名」按鈕,即可顯示報(bào)名線上擇友的結(jié)果如下∶ 
報(bào)名線上擇友時(shí),若已經(jīng)報(bào)名過,則重覆報(bào)名時(shí)將顯示「已經(jīng)報(bào)名」如下∶ 
取消報(bào)名
報(bào)名線上擇友後,可以取消所報(bào)名的資料,僅須於「E-Mail位址」處輸入E-Mail位址後,按下「取消報(bào)名」按鈕,即可顯示取消報(bào)名的結(jié)果如下∶ 
若待取消的E-Mail位址資料尚未報(bào)名過,則取消報(bào)名時(shí)將顯示「找不到」如下∶ 
查詢報(bào)名
報(bào)名線上擇友後,可以查詢報(bào)名的資料,僅須於「E-Mail位址」處輸入E-Mail位址後,按下「查詢報(bào)名」按鈕,即可顯示所有報(bào)名的資料如下∶ 
查詢報(bào)名時(shí),若尚未報(bào)名,則查詢報(bào)名時(shí)將顯示「找不到」如下∶ 

設(shè)計(jì)實(shí)例詳細(xì)解說
建立資料表
首先使用Microsoft Access、Microsoft SQL Server 、Text檔案、或任何一種支援ODBC的資料庫(kù),建立一個(gè)資料表Friend,儲(chǔ)存線上擇友的資料。建立欄位NAME、EMAIL、SEX、CLASS,分別代表一筆線上擇友資料的姓名、E-Mail位址、性別、和興趣。建立資料表時(shí)不必輸入資料。
使用Microsoft Access建立一個(gè)資料表Friend,如下∶ 
或使用Microsoft SQL Server建立一個(gè)資料表Friend,如下∶ 
或使用Text檔案建立一個(gè)資料表Friend,如下∶ 

設(shè)計(jì)輸入的表單
接著,設(shè)計(jì)輸入的表單form,線上擇友時(shí),當(dāng)選擇性別SEX2,和興趣CLASS2,按下「線上擇友」按鈕submit時(shí),即使用POST的方式將輸入資料傳送到網(wǎng)站伺服器,并執(zhí)行於「form action=...」所設(shè)定的data17.asp檔案(與form為同一個(gè)ASP檔案)。
程式碼如下∶
線上擇友, 請(qǐng)選擇擇友條件:<br>
<form action="data17.asp" method="post">
<FONT COLOR="#FF8080">■ </FONT>性別: 
<select name="SEX2">
<OPTION SELECTED>男
<OPTION>女
</select>
<BR>
<FONT COLOR="#FF8080">■ </FONT>興趣:
<select name="CLASS2">
<OPTION SELECTED>運(yùn)動(dòng)
<OPTION>閱讀
<OPTION>電腦
<OPTION>交友
<OPTION>股票
<OPTION>打扮
<OPTION>其他
</select>
<br> 
<INPUT TYPE=submit VALUE="線上擇友" name="Action">
</form>
<HR>
報(bào)名線上擇友時(shí),當(dāng)輸入姓名NAME1和E-Mail位址EMAIL1,選擇性別SEX2和興趣CLASS2,按下「報(bào)名」等按鈕submit時(shí),即使用POST的方式將輸入資料傳送到網(wǎng)站伺服器,并執(zhí)行於「form action=...」所設(shè)定的data17.asp檔案,程式碼如下∶
報(bào)名線上擇友, 請(qǐng)輸入以下資料:<br>
<form action="data17.asp" method="post">
<FONT COLOR="#FF8080">■ </FONT>姓名: 
<INPUT TYPE=TEXT VALUE="王國(guó)偉" NAME="NAME1" SIZE=10><BR> 
<FONT COLOR="#FF8080">■ </FONT>E-Mail位址: 
<INPUT TYPE=TEXT VALUE="wang@abc.net.tw" NAME="EMAIL1" SIZE=20><BR> 
<FONT COLOR="#FF8080">■ </FONT>性別: 
<select name="SEX1">
<OPTION SELECTED>男
<OPTION>女
</select>
<BR>
<FONT COLOR="#FF8080">■ </FONT>興趣:
<select name="CLASS1">
<OPTION SELECTED>運(yùn)動(dòng)
<OPTION>閱讀
<OPTION>電腦
<OPTION>交友
<OPTION>股票
<OPTION>打扮
<OPTION>其他
</select>
<br> 
<INPUT TYPE=submit VALUE="報(bào)名" name="Action"><br>
<INPUT TYPE=submit VALUE="取消報(bào)名" name="Action"> 僅須填入E-Mail位址<br>
<INPUT TYPE=submit VALUE="查詢報(bào)名" name="Action"> 僅須填入E-Mail位址<br>
</form>
網(wǎng)站伺服器執(zhí)行data17.asp檔案,首先經(jīng)由Request.Form("Action")取得所按submit按鈕上的顯示文字VALUE,Left(Request.Form("Action"),2)系只取前兩個(gè)中文字,若Request.Form("Action")非空白時(shí),表示為表單輸入所呼叫執(zhí)行。
由「SELECT CASE Left(Request.Form("Action"),2) 」判斷是按了那個(gè)按鈕。若按鈕上前兩個(gè)字為「報(bào)名」時(shí),則執(zhí)行AddReg() 副程式;若為「取消」時(shí),則執(zhí)行DeleteReg() 副程式;若為「查詢」時(shí),則執(zhí)行CheckReg() 副程式;若為「線上」時(shí),則執(zhí)行Find() 副程式。
<%
SELECT CASE Left(Request.Form("Action"),2)
CASE "報(bào)名"
AddReg()
CASE "取消"
DeleteReg()
CASE "查詢"
CheckReg()
CASE "線上"
Find()
END SELECT
%>
線上擇友
按了「線上擇友」按鈕時(shí),將執(zhí)行Find() 副程式。
首先,先尋找符合擇友條件的記錄,使用「Server.CreateObject」建立連線的物件,并使用「Open」開啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,於Friend資料表,設(shè)定SQL指令,查詢性別欄位SEX符合所輸入Request.Form("SEX2"),和興趣欄位CLASS符合所選擇Request.Form("CLASS2")的資料,下個(gè)「Execute」指令,即可開始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判斷是否找到所待取消的報(bào)名記錄,若RS.EOF為TRUE,表示找不到符合擇友條件的朋友,則顯示「找不到」。
程式碼如下∶
<%
Sub Find()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM Friend WHERE SEX = '" & LEFT(Request.Form("SEX2"),1) & "' AND CLASS = '" & LEFT(Request.Form("CLASS2"),2) & "'"
Set RS = Conn.Execute(SQL)
%> 
<HR>
<FONT COLOR="#0000FF">線上擇友結(jié)果:</FONT><br>
<% 
IF RS.EOF THEN 
'找不到符合擇友條件的朋友 ! 
%> 
<FONT COLOR="#FF0000">報(bào)歉! 找不到符合擇友條件的朋友 !</FONT>
若找到符合擇友條件的資料,則由「K = 0 Do While Not RS.EOF...」計(jì)算有幾筆符合擇友條件,再由「RND」隨機(jī)取得一筆,以便每次線上擇友可能得到不同的結(jié)果,顯示包括性別、E-Mail位址、性別、和興趣等資料,分別由RecordSets物件的RS(0)、RS(1)、RS(2)、RS(3) 取得。
配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。
程式碼,如下∶
<% ELSE 
'有找到 !
K = 0 
Do While Not RS.EOF
RS.MoveNext
K = K + 1 
Loop 
Randomize
j = INT(RND * K)
RS.MoveFirst 
RS.Move j 
%> 

<FONT COLOR="#0000ff">符合擇友條件的朋友, 計(jì) <% =K %> 位<BR> 
其中第 <% =j+1 %> 位的資料如下:</FONT> 
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1> 
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>姓名</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>E-Mail位址</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>性別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>興趣</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(0) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><A HREF="mailto:<% =RS(1) %>"><% =RS(1) %></A></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(3) %></FONT></TD> 
</TR> 
</TABLE> 
<% END IF 
RS.Close
Conn.Close 
End Sub 
%>
最後,使用RS.Close關(guān)閉RecordSet,使用Conn.Close關(guān)閉資料庫(kù)。
報(bào)名
按了「報(bào)名」按鈕時(shí),將執(zhí)行AddReg() 副程式。
首先,使用「Server.CreateObject」建立連線的物件,并使用「Open」開啟待存取查詢資料庫(kù)BookSamp。
再尋找所待新增的報(bào)名記錄,以檢查是否已經(jīng)報(bào)過名,使用SELECT的SQL指令查詢資料庫(kù)的資料,於Friend資料表,設(shè)定SQL指令,查詢E-Mail位址欄位EMAIL符合所輸入Request.Form("EMAIL1")的資料,下個(gè)「Execute」指令,即可開始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
程式碼如下∶
Sub AddReg()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM Friend WHERE EMAIL = '" & Request.Form("EMAIL1") & "'"
Set RS = Conn.Execute(SQL)
接著,要顯示執(zhí)行的結(jié)果了。
首先於Friend資料表,尋找報(bào)名的記錄,由「IF RS.EOF THEN ...」判斷是否找到。若RS.EOF為TRUE,表示尚未報(bào)名,則於Friend資料表,使用「INSERT INTO...」指令新增一筆資料。
顯示執(zhí)行的結(jié)果時(shí),配合<TABLE>表格的HTML語(yǔ)法,將姓名、E-Mail位址、性別、和興趣的資料,填入表格的各欄位當(dāng)中顯示出來(lái)。
程式碼,如下∶
<% 
IF RS.EOF THEN 
'Friend新增一筆
SQL = "INSERT INTO Friend(NAME, EMAIL, SEX, CLASS) VALUES('" & LEFT(Request.Form("NAME1"),3) & "','" & Request.Form("EMAIL1") & "','" & LEFT(Request.Form("SEX1"),1) & "','" & LEFT(Request.Form("CLASS1"),2) & "')"
Set RS = Conn.Execute(SQL)
%>
<FONT COLOR="#0000FF">報(bào)名 OK !</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>姓名</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>E-Mail位址</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>性別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>興趣</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("NAME1"),3) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("EMAIL1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("SEX1"),1) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
</TR> 
</TABLE>
當(dāng)於Friend資料表查詢,由「IF RS.EOF THEN ...」判斷是否找到報(bào)名的資料時(shí),若RS.EOF為FALSE,表示已經(jīng)報(bào)名,則顯示「報(bào)歉! 已經(jīng)報(bào)名!」。
接著,顯示執(zhí)行的結(jié)果,配合<TABLE>表格的HTML語(yǔ)法,將姓名、E-Mail位址、性別、和興趣的資料,填入表格的各欄位當(dāng)中顯示出來(lái)。
程式碼,如下∶
<% ELSE %>
<% '已經(jīng)報(bào)名 %>
<FONT COLOR="#FF0000">報(bào)歉 ! 已經(jīng)報(bào)名 !</FONT><br> 
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>姓名</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>E-Mail位址</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>性別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>興趣</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("NAME1"),3) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("EMAIL1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("SEX1"),1) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD> 
</TR> 
</TABLE>
<% END IF 
Conn.Close
End Sub %>
最後,使用Conn.Close關(guān)閉資料庫(kù)。
取消報(bào)名
按了「取消報(bào)名」按鈕時(shí),將執(zhí)行DeleteReg() 副程式。
首先,先尋找到所待取消的報(bào)名記錄,使用「Server.CreateObject」建立連線的物件,并使用「Open」開啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,於Friend資料表,設(shè)定SQL指令,查詢E-Mail位址欄位EMAIL符合所輸入Request.Form("EMAIL1")的資料,下個(gè)「Execute」指令,即可開始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判斷是否找到所待取消的報(bào)名記錄,若RS.EOF為TRUE,表示尚未報(bào)名,則顯示「找不到 ! 尚未報(bào)名 !」。
程式碼如下∶
<%
Sub DeleteReg()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa","" 
SQL = "SELECT * FROM Friend WHERE EMAIL = '" & Request.Form("EMAIL1") & "'" 
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">取消報(bào)名結(jié)果:</FONT><br> 
<% 
IF RS.EOF THEN 
'找不到 ! 尚未報(bào)名 ! 
%>
<FONT COLOR="#FF0000">找不到 ! 尚未報(bào)名 !</FONT>
若找到所待取消的報(bào)名記錄,則於Friend資料表,使用「DELETE FROM...」指令刪除此筆資料。
接著,顯示執(zhí)行的結(jié)果,配合<TABLE>表格的HTML語(yǔ)法,將於Friend資料表刪除的資料,填入表格的各欄位當(dāng)中,以顯示出來(lái)。
程式碼,如下∶
<% ELSE 
'取消報(bào)名 ! 
%>
<FONT COLOR="#FF0000">報(bào)名已經(jīng)取消 !</FONT> 
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>姓名</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>E-Mail位址</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>性別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>興趣</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(0) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(1) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=