这篇文章介绍了商业网站应用设计,包括特价商品线上查询系统、线上购物系统、房屋仲介线上查询系统、线上择友系统、线上买卖交易系统、线上徵求命名系统、杂志线上查询订讲系统、生活资讯线上查询系统、电影查询预约系统、电台线上查询系统、线上多人游戏系统等应用的点子、设计实例、以及详细解说,让您快速地设计出各种商业的网站应用。
商业网站资料库应用
商业上使用网站资料库,可以透过Internet、或Intranet提供以下的应用∶
* 特价商品线上查询*
* 线上购物*
* 房屋仲介线上查询*
* 线上择友*
* 线上买卖交易
* 线上徵求命名
* 线上杂志查询订讲
* 生活资讯线上查询
* 电影查询预约
* 电台线上查询
* 线上多人游戏
右上角标示*的应用,本节将提供设计的范例,并详加解说。
执行本章资料库的范例,所用的资料库可为Microsoft Access、Microsoft SQL Server、或Text档案(读者可修改成其他支援ODBC的资料库,详见1-6-5节),须於NT安装IIS 3.0,并於「控制台」中的「ODBC」,新建一个名称为「BookSamp」的资料来源,驱动程式为「Microsoft Access Driver」、「SQL Server」、或「Microsoft Text 驱动程式」。详见附录 范例磁片。
1
特价商品线上查询系统
「特价商品线上查询系统」,可以透过Internet,查询价商品的资讯。
透过Internet,连线上公司、百货公司、超市、量贩店的「特价商品线上查询系统」,即可线上查询今天特价商品的资讯,包括特价商品的价格、外观图片等。
设计实例
让我们执行一个实例。
( 范例 data6.asp 特价商品线上查询
若要查询资料,於用户端使用浏览器,浏览本书所附安装於网站伺服器的data6.asp,即可显示查询的结果如下,包括名称、外观图片、原价、特价∶
设计实例详细解说
建立资料表
首先使用Microsoft Access、Microsoft SQL Server 、Text档案、或任何一种支援ODBC的资料库,建立一个资料表Goods。
於栏名GIF、NAME、PRICE1、PRICE2分别输入外观图片档名、名称、原价、特价,若为特价商品时,於MARK栏位输入「*」。
使用Microsoft Access建立一个资料表Goods,如下∶
或使用Microsoft SQL Server建立一个资料表Goods,如下∶
或使用Text档案建立一个资料表Goods,如下∶
查询资料库
接著,使用「Server.CreateObject」建立连线的物件,并使用「Open」开启待存取查询资料库BookSamp。
再使用SELECT的SQL指令查询资料库的资料,设定SQL指令,查询资料表Goods中栏位MARK为「*」的特价商品,下个「Execute」指令,即可开始执行存取查询资料库的动作,并将查询结果储存到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)
接著,要显示查询的结果了。
首先,由「 IF RS.EOF THEN ...」判断是否找到栏位MARK为「*」的特价商品,若RS.EOF为TRUE,则显示「今日无特价商品」。
程式码,如下∶
查询结果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#FF0000">今日无特价商品</FONT>
若找到栏位MARK为「*」的特价商品,则显示特价商品之名称、外观图片、原价、特价,分别由RecordSets物件的RS(0)、RS(1) 、RS(2)、RS(3) 取得。
RS.Fields.Count表示RecordSets物件的栏位数,由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各栏位的资料。配合<TABLE>表格的HTML语法,将结果填入表格的各栏位当中。
若还有下一笔资料,使用RS.MoveNext移到下一笔的位置。
程式码,如下∶
<% ELSE %>
<FONT COLOR="#0000ff">特价商品如下:</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>原价</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>特价</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关闭RecordSet,使用Conn.Close关闭资料库。
全部的程式码,如下∶
<HTML>
<HEAD>
<TITLE>特价商品线上查询系统</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=big5">
</HEAD>
<CENTER>
<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=+2 COLOR="#0000FF">特价商品线上查询系统</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>
查询结果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#FF0000">今日无特价商品</FONT>
<% ELSE %>
<FONT COLOR="#0000ff">特价商品如下:</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>原价</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>特价</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>
学会了吗?
2
线上购物系统
「线上购物系统」,可以透过Internet,以使用信用卡付款的方式,订购商品。
一般客户,透过Internet,连线上公司的「线上购物系统」,输入订购商品与数量、信用卡付款资料,即可以完成线上订购商品的手续。
可线上查询商品的资讯,包括商品的价格、外观图片等。
订购时,线上购物系统提供可以增加、取消、查询订购的功能。
订购後,可线上查询处理的结果,包括检查存货情况,告之预定交货的时间、和交货数量。
自动印出每日的订购商品、和订购数量,给相关部门出货、向信用卡公司收款之用。
这个「线上购物系统」,也可用於连锁店、直销员、或经销商向总公司订货之用,在电脑输入密码、输入订购商品、与数量,即可以完成线上订购商品的手续。
设计实例
让我们执行一个实例。
( 范例 data14.asp 线上购物
若要线上购物,於用户端使用浏览器,浏览本书所附安装於网站伺服器的data14.asp,於「信用卡种类」等处选择和输入信用卡的资料,并输入、「消费总金额」、「商品代号」、「数量」後,按下「线上购物」按钮,即可显示线上购物的结果,包括信用卡的资料、订购的资料、订购单号码如下∶
取消购物
线上购物後,可以取消所订购的记录,於「订购单号码」处选择待取消的订购单号码,按下「取消购物」按钮,即可显示取消订购单的结果如下∶
若待取消的订购单尚未订购过,则取消订购单时将显示「找不到订购单」如下∶
查询购物单
线上购物後,可以查询所有订购的记录,仅须於「信用卡号」处输入信用卡号後,按下「查询购物单」按钮,即可显示查询所有订购的记录如下∶
查询购物单时,若尚未订购过,则查询购物单时将显示「找不到订购单」如下∶
设计实例详细解说
建立资料表
首先使用Microsoft Access、Microsoft SQL Server 、Text档案、或任何一种支援ODBC的资料库,建立一个资料表GoodsTrans,储存订购单记录。
建立栏位ID、TYPE、VALID、GOODS、QTY、AMOUNT、SN,分别代表一个订购记录的信用卡号、信用卡种类、信用卡有效期限、持有人姓名、消费总金额、商品代号、数量、订购单号码。建立资料表时不必输入资料。
使用Microsoft Access建立一个资料表GoodsTrans,如下∶
或使用Microsoft SQL Server建立一个资料表GoodsTrans,如下∶
或使用Text档案建立一个资料表GoodsTrans,如下∶
设计输入的表单
接著,设计输入的表单form,线上购物时,当客户选择信用卡种类TYPE1,输入信用卡号ID1,信用卡有效期限VALID1,持有人姓名NAME1,消费总金额AMOUNT1,商品代号GOODS1,数量QTY1,按下「线上购物」按钮submit时,即使用POST的方式将输入资料传送到网站伺服器,并执行於「form action=...」所设定的data14.asp档案(与form为同一个ASP档案),程式码如下∶
线上购物, 请输入以下资料:<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>信用卡号:
<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>消费总金额:
<INPUT TYPE=TEXT VALUE="12000" NAME="AMOUNT1" SIZE=6><P>
<FONT COLOR="#FF8080">■ </FONT>商品代号 (如123456):
<INPUT TYPE=TEXT VALUE="123456" NAME="GOODS1" SIZE=10><BR>
<FONT COLOR="#FF8080">■ </FONT>数量:
<INPUT TYPE=TEXT VALUE="10" NAME="QTY1" SIZE=6><BR>
<INPUT TYPE=submit VALUE="线上购物" name="Action"><p>
<HR WIDTH = 30% ALIGN=LEFT>
<FONT COLOR="#FF0000">■ </FONT>订购单号码:
<INPUT TYPE=TEXT NAME="SN1" SIZE=12>
<INPUT TYPE=submit VALUE="取消购物" name="Action"><P>
<FONT COLOR="#00FF00">■ </FONT>信用卡号:
<INPUT TYPE=TEXT VALUE="1234-5678-9012-3456" NAME="ID2" SIZE=19>
<INPUT TYPE=submit VALUE="查询购物单" name="Action"><P>
</form>
<form>
<FONT COLOR="#0000FF">■ </FONT><INPUT TYPE=button VALUE="查询特价商品" OnClick="location.href='data6.asp'">
</form>
取消线上购物时,客户输入订购单号码SN1,按下「取消购物」按钮submit送到网站伺服器。
查询购物单时,客户输入信用卡号ID2,按下「查询购物单」按钮submit送到网站伺服器。
若按下「查询特价商品」按钮,将执行data6.asp,以显示特价商品。
当网站伺服器执行data14.asp档案时,首先经由Request.Form("Action")取得所按submit按钮上的显示文字VALUE,Left(Request.Form("Action"),2)系只取前两个中文字,若Request.Form("Action")非空白时,表示为表单输入所呼叫执行。
由「SELECT CASE Left(Request.Form("Action"),2) 」判断是按了那个按钮。若按钮上前两个字为「线上」时,则执行AddGoods() 副程式;若为「取消」时,则执行DeleteGoods() 副程式;若为「查询」时,则执行CheckGoods() 副程式。
<%
SELECT CASE Left(Request.Form("Action"),2)
CASE "线上"
AddGoods()
CASE "取消"
DeleteGoods()
CASE "查询"
CheckGoods()
END SELECT
%>
线上购物
按了「线上购物」按钮时,将执行AddGoods() 副程式。
首先,使用「Server.CreateObject」建立连线的物件,并使用「Open」开启待存取查询资料库BookSamp。
於GoodsTrans资料表,使用「INSERT INTO...」指令新增一笔资料。此笔新增资料的栏位ID、TYPE、VALID、GOODS、QTY、AMOUNT为所输入的表单资料。订购单号码栏位SN系设定为订购时的日期时间。
程式码如下∶
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)
接著,要显示执行的结果了。总计两个表格,一个为信用卡资料表,另一个为订购资料表。
显示执行的结果时,配合<TABLE>表格的HTML语法,将结果填入表格的各栏位当中。
程式码,如下∶
<FONT COLOR="#0000FF">线上购物结果:</FONT><br>
<FONT COLOR="#0000FF">订购 OK ! 订购单号码为 <% =SNNO %></FONT><BR>
信用卡资料:<BR>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1&