您的位置:首页精文荟萃软件资讯 → 旅游网站应用设计

旅游网站应用设计

时间:2004/10/7 18:17:00来源:本站整理作者:蓝点我要评论(0)

 这篇文章介绍运输旅游网站应用设计,包括时刻表线上查询系统、线上机票车票订位系统、旅行社线上查询报名系统、旅馆线上查询预约系统、邮件运送线上查询预约系统、等应用的点子、设计实例、以及详细解说,让您快速地设计出各种运输旅游的网站应用。

运输网站资料库应用
运输旅游方面,使用网站资料库,可以透过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,连线上航空公司(铁路局、公路局)的「时刻表线上查询系统」,可以线上查询航空班机(火车票、公路局车票)时刻表。
「时刻表线上查询系统」也可以提供旅游促销活动、班次起飞到达误点,或旅游地点的住宿旅馆、饮食餐厅、天气预告、娱乐地点等资讯。
设计实例
让我们执行一个实例。
( 范例 data8.asp 飞机班机时刻表线上查询
若要查询资料,於用户端使用浏览器,浏览本书所附安装於网站伺服器的data8.asp,即可显示查询的飞机班机时刻表如下,包括班次、离/到时刻、机型∶ 

设计实例详细解说
建立资料表
首先使用Microsoft Access、Microsoft SQL Server 、Text档案、或任何一种支援ODBC的资料库,建立一个资料表AirTimeTable。
於栏名FLIGHT、TIME、AIRCRAFT分别输入班次、离/到时刻、机型的资料。
使用Microsoft Access建立一个资料表AirTimeTable,如下∶ 
或使用Microsoft SQL Server建立一个资料表AirTimeTable,如下∶ 
或使用Text档案建立一个资料表AirTimeTable,如下∶ 

查询资料库
接著,网站伺服器执行data8.asp档案,使用「Server.CreateObject」建立连线的物件,并使用「Open」开启待存取查询资料库BookSamp。
再使用SELECT的SQL指令查询资料库的资料,设定SQL指令,下个「Execute」指令,即可开始执行存取查询资料库的动作,并将查询结果储存到RecordSets物件RS。
程式码如下∶
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT FLIGHT,TIME,AIRCRAFT FROM AirTimeTable"
Set RS = Conn.Execute(SQL)
%>
接著,要显示查询的结果了。
首先,由「 IF RS.EOF THEN ...」判断是否找到飞机班机时刻表的资料,若RS.EOF为TRUE,则显示「本月无航空班机」。
若找到飞机班机时刻表的资料,则显示考上的结果,包括班次、离/到时刻、机型,分别由RecordSets物件的RS(0)、RS(1) 、RS(2) 取得。
RS.Fields.Count表示RecordSets物件的栏位数,由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各栏位的资料。配合表格的HTML语法,将结果填入表格的各栏位当中。
由「If INT(j/2)*2 <> j Then... 」判断显示奇偶笔的班机时刻资料,奇偶列显示不同的颜色。
若还有下一笔资料,使用RS.MoveNext移到下一笔的位置。
程式码,如下∶
<% IF RS.EOF THEN %>
本月无航空班机 
<% ELSE %>
台北 -> 高雄 航空班机时刻表如下: 


班次
离/到 时刻
机型
 
<% j = 1 %> 
<% Do While Not RS.EOF %>
 
<% For i = 0 to RS.Fields.Count - 1 %>
<% If INT(j/2)*2 <> j Then %>

<%= RS(i) %> 
<% Else %>

<%= RS(i) %>
<% END IF %> 
<% Next %>

<%
RS.MoveNext
j = j + 1 
Loop
RS.Close
Conn.Close
%> 
 
<% END IF %>
最後,使用RS.Close关闭RecordSet,使用Conn.Close关闭资料库。
全部的程式码,如下∶


航空班机时刻表 线上查询系统




航空班机时刻表 线上查询系统
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT FLIGHT,TIME,AIRCRAFT FROM AirTimeTable"
Set RS = Conn.Execute(SQL)
%>

 
<% IF RS.EOF THEN %>
本月无航空班机 
<% ELSE %>
台北 -> 高雄 航空班机时刻表如下: 


班次
离/到 时刻
机型

<% j = 1 %> 
<% Do While Not RS.EOF %>
 
<% For i = 0 to RS.Fields.Count - 1 %>
<% If INT(j/2)*2 <> j Then %>

<%= RS(i) %> 
<% Else %>

<%= RS(i) %>
<% END IF %> 
<% Next %>
 
<%
RS.MoveNext
j = j + 1 

Loop
RS.Close
Conn.Close
%>
 
<% END IF %> 






2
线上机票车票订位系统
「线上机票车票订位系统」,可以透过Internet,提供机票、火车票、公路局车票预约订位的功能。
旅客透过Internet,连线上航空公司(铁路局、公路局)的「线上机票车票订位系统」,可以由电脑输入班机、身分证号码、日期,完成机票(火车票、公路局车票)订位手续。
订位系统将自动统计每一个班次的订位人数,若超过名额,将自动告之,要求旅客订位其他的班次。
订位时,订位系统提供可以增加、取消、查询订位的功能。
旅客可以线上查询航空班机(火车票、公路局车票)时刻表。
费用可由信用卡、划拨、或银行转帐来支付。
设计实例
让我们执行一个实例。
( 范例 data11.asp 线上机票订位
若要线上订位机票,於用户端使用浏览器,浏览本书所附安装於网站伺服器的data11.asp,於「身分证字号」处输入身分证字号如A123456789,於「搭机日期」处输入搭机日期如870707,於「搭机班次」处输入搭机班次如103後,按下「订位」按钮,即可显示机票订位的结果如下,包括身分证字号、搭机日期、搭机班次、定位顺序∶ 
线上订位机票时,若此班次已经订位过,则重覆订位相同的班次将显示「已经订过位」如下∶ 
线上订位机票时,若超过订位的300个名额时,则显示「机位已满」如下∶ 

取消订位
线上订位机票後,可以取消所订位的记录,於「身分证字号」处输入身分证字号如A123456789,於「搭机日期」处输入搭机日期如870707,於「搭机班次」处输入搭机班次如103後,按下「取消订位」按钮,即可显示取消订位的结果如下∶ 
若待取消的班次尚未订位过,则取消订位时显示「尚未订位」如下∶ 

查询订位
线上订位机票後,可以查询所有订位的记录,仅须於「身分证字号」处输入身分证字号如A123456789後,按下「查询」按钮,即可显示查询的结果如下∶ 
查询订位时,若尚未订位,则查询订位将显示「尚未订位」如下∶ 

班机时刻表
按下「班机时刻表」按钮,即可显示查询班机时刻表的结果如下∶ 

设计实例详细解说
建立资料表
首先使用Microsoft Access、Microsoft SQL Server 、Text档案、或任何一种支援ODBC的资料库,建立一个资料表AirCount,储存一个班次的预约订位人数、和最後订位顺序号码。
这个资料表系供订位和取消订位时,记录一个班次的预约订位人数、和最後订位顺序号码之用。
建立栏位TOTAL、COUNT0、DATE0、FLIGHT,分别代表一个班次的预约订位人数、最後订位顺序号码、日期、班机。建立资料表时不必输入资料。
使用Microsoft Access建立一个资料表AirCount,如下∶ 
或使用Microsoft SQL Server建立一个资料表AirCount,如下∶ 
或使用Text档案建立一个资料表AirCount,如下∶ 
尚需要建立另一个资料表AirTicket,储存预约订位的记录,建立栏位ID、COUNT0、DATE0、FLIGHT,分别代表一笔预约订位记录的身分证号码、订位顺序号码、日期、班机。
这个资料表系供订位、查询订位、和取消订位时,记录一笔预约订位记录之用。建立资料表时不必输入资料。
使用Microsoft Access建立一个资料表AirTicket,如下∶ 
或使用Microsoft SQL Server建立一个资料表AirTicket,如下∶ 
或使用Text档案建立一个资料表AirTicket,如下∶ 

设计输入的表单
接著,设计输入的表单form,当客户输入身分证字号ID1、搭机日期DATE1、搭机班次FLIGHT1,按下「订位」等的按钮submit时,即使用POST的方式将输入资料传送到网站伺服器,并执行於「form action=...」所设定的data11.asp档案(与form为同一个ASP档案),程式码如下∶
机票订位, 请输入:

 
■ 身分证字号 (如A123456789): 


■ 搭机日期 (如87年7月1日请输入870701): 


■ 搭机班次 (如103): 

 



 仅须填入身分证字号

 



若按下「班机时刻表」的按钮时,执行data8.asp,以查询班机时刻表。
网站伺服器执行data11.asp档案,首先经由Request.Form("Action")取得所按submit按钮上的显示文字VALUE,Left(Request.Form("Action"),2)系只取前两个中文字,若Request.Form("Action")非空白时,表示为表单输入所呼叫执行。
由「SELECT CASE Left(Request.Form("Action"),2) 」判断是按了那个按钮。若按钮上前两个字为「订位」时,则执行AddTicket() 副程式;若为「取消」时,则执行DeleteTicket() 副程式;若为「查询」时,则执行CheckTicket() 副程式。
<%
SELECT CASE Left(Request.Form("Action"),2)
CASE "订位"
AddTicket()
CASE "取消"
DeleteTicket()
CASE "查询"
CheckTicket()
END SELECT
%>
订位
按了「订位」按钮时,将执行AddTicket() 副程式。
首先,使用「Server.CreateObject」建立连线的物件,并使用「Open」开启待存取查询资料库BookSamp。
再寻找所待新增的订位记录,以检查是否已经订过位,使用SELECT的SQL指令查询资料库的资料,於AirTicket资料表,设定SQL指令,查询身分证字号栏位ID符合所输入Request.Form("ID1"),和栏位DATE0符合所输入搭机日期Request.Form("DATE1"),及栏位FLIGHT符合所输入搭机日期Request.Form("FLIGHT1")的资料,下个「Execute」指令,即可开始执行存取查询资料库的动作,并将查询结果储存到RecordSets物件RS。
程式码如下∶
Sub AddTicket()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM AirTicket WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'"
Set RS = Conn.Execute(SQL)
接著,要显示执行的结果了。
首先於AirTicket资料表,检查是否已经订过位,由「IF RS.EOF THEN ...」判断。若RS.EOF为TRUE,表示此客户对於此班次尚未订过位,再寻找是否所待订位的班次已经有人订过位。於AirCount资料表,设定SQL指令,查询栏位DATE0符合所输入搭机日期Request.Form("DATE1"),及栏位FLIGHT符合所输入搭机日期Request.Form("FLIGHT1")的资料。若RS.EOF为TRUE,表示此班次尚未有人订位,则於AirCount资料表,使用「INSERT INTO...」指令新增一笔资料。此笔新增资料的订位人数栏位TOTAL、和最後订位顺序号码栏位COUNT0都设定为1,搭机日期栏位DATE0设定为Request.Form("DATE1"),及搭机日期栏位FLIGHT设定为Request.Form("FLIGHT1")。
然後再於AirTicket资料表,使用「INSERT INTO...」指令新增一笔资料。此笔新增资料的订位顺序号码栏位COUNT0设定为1,身分证字号栏位ID设定为Request.Form("ID1"),搭机日期栏位DATE0设定为Request.Form("DATE1"),及搭机日期栏位FLIGHT设定为Request.Form("FLIGHT1")。
显示执行的结果时,配合表格的HTML语法,将结果填入表格的各栏位当中。
程式码,如下∶
订位结果:

<% 
IF RS.EOF THEN 
RS.Close 
SQL = "SELECT * FROM AirCount WHERE DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'" 
Set RS = Conn.Execute(SQL) 
IF RS.EOF THEN
'此班次尚未有人订位 ! 於AirCount新增一笔
SQL = "INSERT INTO AirCount(COUNT, TOTAL, DATE0, FLIGHT) VALUES(1,1,'" & Request.Form("DATE1") & "','" & Request.Form("FLIGHT1") & "')"
Set RS = Conn.Execute(SQL) 
'AirTicket新增一笔
SQL = "INSERT INTO AirTicket(COUNT0, ID, DATE0, FLIGHT) VALUES(1,'" & Request.Form("ID1") & "','" & Request.Form("DATE1") & "','" & Request.Form("FLIGHT1") & "')" 
Set RS = Conn.Execute(SQL)
%>
订位 OK ! 订位顺序为第 1 号 


身分证字号
搭机日期
搭机班次
订位顺序
 

<% =Request.Form("ID1") %>
<% =Request.Form("DATE1") %>
<% =Request.Form("FLIGHT1") %>
1
 

若此班次已有人订位,即RS.EOF为FALSE。由「IF RS(0) < 300 THEN...」判断RS(0) 订位人数TOTAL是否超过300个名额。
若未超过,则於AirCount资料表,使用「UPDATE...」指令,将此笔资料的订位人数TOTAL、和最後订位顺序号码COUNT0都加一。
然後,再於AirTicket资料表,使用「INSERT INTO...」指令新增一笔资料。此笔新增资料的订位顺序号码栏位COUNT0为AirCount资料表的加一後之COUNT0新值,身分证字号栏位ID设定为Request.Form("ID1"),搭机日期栏位DATE0设定为Request.Form("DATE1"),及搭机日期栏位FLIGHT设定为Request.Form("FLIGHT1")。
接著,显示执行的结果时,配合表格的HTML语法,将於AirTicket资料表新增的资料,填入表格的各栏位当中显示出来。
程式码,如下∶
<% ELSE 
IF RS(0) < 300 THEN 
'此班次已有人订位 ! AirCount的COUNT0,TOTAL增一
TotalNo = RS(0)+1
CountNo = RS(1)+1 
SQL = "UPDATE AirCount SET TOTAL = " & TotalNo & ",COUNT0 = " & CountNo & " WHERE DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'" 
Set RS = Conn.Execute(SQL) 
'AirTicket新增一笔
SQL = "INSERT INTO AirTicket(COUNT0, ID, DATE0, FLIGHT) VALUES(" & CountNo & ",'" & Request.Form("ID1") & "','" & Request.Form("DATE1") & "','" & Request.Form("FLIGHT1") & "')" 
Set RS = Conn.Execute(SQL)
%>
订位 OK ! 订位顺序为第 <% =CountNo %> 号


身分证字号
搭机日期
搭机班次
订位顺序
 

<% =Request.Form("ID1") %>
<% =Request.Form("DATE1") %>
<% =Request.Form("FLIGHT1") %>
<% =CountNo %>
 

若此班次的订位人数TOTAL超过300个名额时,则显示「机位已满 ! 请定其他班次 !」。
接著,显示执行的结果,配合表格的HTML语法,将身分证字号和搭机日期等输入资料,填入表格的各栏位当中显示出来。
程式码,如下∶
<% ELSE %>
<% '300机位已满 %>
报歉 !

机位已满 ! 请定其他班次 !


身分证字号
搭机日期
搭机班次
 

<% =Request.Form("ID1") %>
<% =Request.Form("DATE1") %>
<% =Request.Form("FLIGHT1") %>
 

<% END IF %> 
<% END IF %>
当於AirTicket资料表,由「IF RS.EOF THEN ...」判断检查是否已经订过位,。若RS.EOF为FALSE,表示此客户对於此班次已经订过位,则显示「报歉! 已经订过位 ! 订位顺序为第...号」。
接著,显示执行的结果,配合表格的HTML语法,将身分证字号、搭机日期、搭机班次、和订位顺序的资料,填入表格的各栏位当中显示出来。
程式码,如下∶
<% ELSE %>
<% '已经订过位 %>
报歉 !

已经订过位 ! 订位顺序为第 <% =RS(1) %> 号 


身分证字号
搭机日期
搭机班次
订位顺序


<% =Request.Form("ID1") %>
<% =Request.Form("DATE1") %>
<% =Request.Form("FLIGHT1") %>
<% =RS(1) %>
 

<% END IF 
Conn.Close
End Sub %>
最後,使用Conn.Close关闭资料库。
取消订位
按了「取消订位」按钮时,将执行DeleteTicket() 副程式。
首先,先寻找到所待取消的订位记录,使用「Server.CreateObject」建立连线的物件,并使用「Open」开启待存取查询资料库BookSamp。
再使用SELECT的SQL指令查询资料库的资料,於AirTicket资料表,设定SQL指令,查询身分证字号栏位ID符合所输入Request.Form("ID1"),和栏位DATE0符合所输入搭机日期Request.Form("DATE1"),及栏位FLIGHT符合所输入搭机日期Request.Form("FLIGHT1")的资料,下个「Execute」指令,即可开始执行存取查询资料库的动作,并将查询结果储存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判断是否找到所待取消的订位记录,若RS.EOF为TRUE,表示此客户对於此班次尚未订位,则显示「找不到 ! 尚未订位 !」。
程式码如下∶
<%
Sub DeleteTicket()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa","" 
SQL = "SELECT * FROM AirTicket WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'" 
Set RS = Conn.Execute(SQL)
%>


取消订位结果:
 
<% 
IF RS.EOF THEN 
'找不到 ! 尚未订位 ! 
%>
找不到 ! 尚未订位 !
若找到所待取消的订位记录,则於AirTicket资料表,使用「DELETE FROM...」指令删除此笔资料。
然後,再於AirCount资料表,使用「UPDATE...」指令,将此笔课程的选课人数TOTAL减一。
接著,显示执行的结果,配合表格的HTML语法,将於AirTicket资料表删除的资料,填入表格的各栏位当中,以显示出来。
程式码,如下∶
<% ELSE 
'取消已经订过位 ! 
'AirTicket删除一笔
SQL = "DELETE FROM AirTicket WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'" 
Set RS = Conn.Execute(SQL) 
'AirCount的TOTAL减一
SQL = "SELECT * FROM AirCount WHERE DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'" 
Set RS = Conn.Execute(SQL)
IF RS.EOF THEN
%>
找不到订位资料 !
<% 
ELSE
TotalNo = RS(0)-1
SQL = "UPDATE AirCount SET TOTAL = " & TotalNo & " WHERE DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'" 
Set RS = Conn.Execute(SQL)
%> 
订位已经取消 ! 


身分证字号
搭机日期
搭机班次
 

<% =Request.Form("ID1") %>
<% =Request.Form("DATE1") %>
<% =Request.Form("FLIGHT1") %>
 
 
<% END IF 
END IF
Conn.Close
End Sub %>
最後,使用Conn.Close关闭资料库。
查询订位
按了「查询订位」按钮时,执行CheckTicket() 副程式。
首先,先寻找到所待查询的选课记录,使用「Server.CreateObject」建立连线的物件,并使用「Open」开启待存取查询资料库BookSamp。
再使用SELECT的SQL指令查询资料库的资料,於AirTicket资料表,设定SQL指令,查询身分证字号栏位ID符合所输入Request.Form("ID1")的资料,下个「Execute」指令,即可开始执行存取查询资料库的动作,并将查询结果储存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判断是否找到所待查询身分证字号的所有订位记录,若RS.EOF为TRUE,表示此客户尚未订位,则显示「找不到 ! 尚未订位 !」。
程式码如下∶
<%
Sub CheckTicket()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT ID,DATE0,FLIGHT,COUNT0 FROM AirTicket WHERE ID = '" & Request.Form("ID1") & "'"
Set RS = Conn.Execute(SQL)
%> 


查询订位结果:

<% 
IF RS.EOF THEN 
'找不到 ! 尚未订位 ! 
%>
找不到 ! 尚未订位 !
若找到ID为身分证字号Request.Form("ID1")的资料,则显示查询的结果,包括身分证字号、搭机日期、搭机班次、订位顺序,分别由RecordSets物件的RS(0)、RS(1)、RS(2)取得。
RS.Fields.Count表示RecordSets物件的栏位数,由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各栏位的资料。配合表格的HTML语法,将结果填入表格的各栏位当中。
若还有下一笔资料,使用RS.MoveNext移到下一笔的位置。
程式码,如下∶
<% ELSE %>
<% '有订过位 ! %>
订位如下: 


身分证字号
搭机日期
搭机班次
订位顺序
 
<% j = 1 %> 
<% Do While Not RS.EOF %>
 
<% For i = 0 to RS.Fields.Count - 1 %>
<% If INT(j/2)*2 <> j Then %>

<%= RS(i) %> 
<% Else %>

<%= RS(i) %>
<% END IF %> 
<% Next %>

<%
RS.MoveNext
j = j + 1
Loop
%>
 
<% END IF 
RS.Close
Conn.Close
End Sub %>
最後,使用RS.Close关闭RecordSet,使用Conn.Close关闭资料库。
全部的程式码,如下∶


线上机票订位系统

 

线上机票订位系统
<%
SELECT CASE Left(Request.Form("Action"),2) 
CASE "订位"
AddTicket() 
CASE "取消"
DeleteTicket() 
CASE "查询"
CheckTicket() 
END SELECT 
Sub AddTicket()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa","" 
SQL = "SELECT * FROM AirTicket WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'" 
Set RS = Conn.Execute(SQL)
%> 


订位结果:
 
<% 
IF RS.EOF THEN 
RS.Close 
SQL = "SELECT * FROM AirCount WHERE DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'"
Set RS = Conn.Execute(SQL) 
IF RS.EOF THEN
'此班次尚未有人订位 ! 於AirCount新增一笔
SQL = "INSERT INTO AirCount(COUNT0, TOTAL, DATE0, FLIGHT) VALUES(1,1,'" & Request.Form("DATE1") & "','" & Request.Form("FLIGHT1") & "')"
Set RS = Conn.Execute(SQL) 
'AirTicket新增一笔
SQL = "INSERT INTO AirTicket(COUNT0, ID, DATE0, FLIGHT) VALUES(1,'" & Request.Form("ID1") & "','" & Request.Form("DATE1") & "','" & Request.Form("FLIGHT1") & "')"
Set RS = Conn.Execute(SQL)
%>
订位 OK ! 订位顺序为第 1 号


身分证字号
搭机日期
搭机班次
订位顺序
 

<% =Request.Form("ID1") %>
<% =Request.Form("DATE1") %>
<% =Request.Form("FLIGHT1") %>
1
 
 
<% ELSE 
IF RS(0) < 300 THEN 
'此班次已有人订位 ! AirCount的COUNT0,TOTAL增一
TotalNo = RS(0)+1
CountNo = RS(1)+1 
SQL = "UPDATE AirCount SET TOTAL = " & TotalNo & ",COUNT0 = " & CountNo & " WHERE DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'" 
Set RS = Conn.Execute(SQL) 
'AirTicket新增一笔
SQL = "INSERT INTO AirTicket(COUNT0, ID, DATE0, FLIGHT) VALUES(" & CountNo & ",'" & Request.Form("ID1") & "','" & Request.Form("DATE1") & "','" & Request.Form("FLIGHT1") & "')" 
Set RS = Conn.Execute(SQL)
%>
订位 OK ! 订位顺序为第 <% =CountNo %> 号


身分证字号
搭机日期
搭机班次
订位顺序
 

<% =Request.Form("ID1") %>
<% =Request.Form("DATE1") %>
<% =Request.Form("FLIGHT1") %>
<% =CountNo %>
 
 
<% ELSE %>
<% '300机位已满 %>
报歉 !

机位已满 ! 请定其他班次 !


身分证字号
搭机日期
搭机班次
 

<% =Request.Form("ID1") %>
<% =Request.Form("DATE1") %>
<% =Request.Form("FLIGHT1") %>
 

<% END IF %> 
<% END IF %> 
<% ELSE %>
<% '已经订过位 %>
报歉 !

已经订过位 ! 订位顺序为第 <% =RS(1) %> 号


身分证字号
搭机日期
搭机班次
订位顺序
 

<% =Request.Form("ID1") %>
<% =Request.Form("DATE1") %>
<% =Request.Form("FLIGHT1") %>
<% =RS(1) %>
 

<% END IF 
Conn.Close
End Sub %> 
<%
Sub DeleteTicket()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa","" 
SQL = "SELECT * FROM AirTicket WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'" 
Set RS = Conn.Execute(SQL)
%>


取消订位结果:
 
<% 
IF RS.EOF THEN 
'找不到 ! 尚未订位 ! 
%>
找不到 ! 尚未订位 ! 
<% ELSE '取消已经订过位 ! AirTicket删除一笔
SQL = "DELETE FROM AirTicket WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'"
Set RS = Conn.Execute(SQL) 
'AirCount的TOTAL减一
'RS.Close 
SQL = "SELECT * FROM AirCount WHERE DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'"
Set RS = Conn.Execute(SQL) 
IF RS.EOF THEN
%>
找不到订位资料 ! 
<%
ELSE
TotalNo = RS(0)-1
SQL = "UPDATE AirCount SET TOTAL = " & TotalNo & " WHERE DATE0 = '" & Request.Form("DATE1") & "' AND FLIGHT = '" & Request.Form("FLIGHT1") & "'" 
Set RS = Conn.Execute(SQL)
%> 
订位已经取消 ! 


身分证字号
搭机日期
搭机班次
 

<% =Request.Form("ID1") %>
<% =Request.Form("DATE1") %>
<% =Request.Form("FLIGHT1") %>
 
 
<% END IF 
END IF
Conn.Close
End Sub %> 
<%
Sub CheckTicket()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa","" 
SQL = "SELECT ID,DATE0,FLIGHT,COUNT0 FROM AirTicket WHERE ID = '" & Request.Form("ID1") & "'"
Set RS = Conn.Execute(SQL)
%>


查询订位结果:

<% 
IF RS.EOF THEN 
'找不到 ! 尚未订位 ! 
%>
找不到 ! 尚未订位 ! 
<% ELSE %>
<% '有订过位 ! %>
订位如下: 


身分证字号
搭机日期
搭机班次
订位顺序
 
<% j = 1 %> 
<% Do While Not RS.EOF %>
 
<% For i = 0 to RS.Fields.Count - 1 %>
<% If INT(j/2)*2 <> j Then %>

<%= RS(i) %>
<% Else %>

<%= RS(i) %>
<% END IF %> 
<% Next %>

<%
RS.MoveNext
j = j + 1 
Loop
%>
 
<% END IF 
RS.Close
Conn.Close
End Sub %> 


机票订位, 请输入:

 
■ 身分证字号 (如A123456789): 


■ 搭机日期 (如87年7月1日请输入870701): 


■ 搭机班次 (如103): 

 



 仅须填入身分证字号

 


 




3
其他运输旅游网站应用
其他的运输旅游网站应用,如下∶
旅行社线上查询报名系统
「旅行社线上查询报名系统」,可以透过Internet,提供旅游资讯、旅行团报名的功能。
想旅游的人,透过Internet,连线上旅行社的「旅行社线上查询报名系统」,可以查询旅游促销活动、旅游行程日期安排,或旅游地点的住宿旅馆、饮食餐厅、天气预告、娱乐地点图文简介等资讯。
可以由电脑输入身分证号码、参考旅行团次,完成旅行团报名手续。
已经报名参加的人,可以查询申请签证的处里结果、旅游注意事项、天气预告等资讯。
旅馆线上查询预约系统
「旅馆线上查询预约系统」,可以透过Internet,提供旅馆住宿资讯、预约房间的功能。
想旅游住宿的人,透过Internet,连线上旅馆的「旅馆线上查询预约系统」,可以查询旅馆住宿房间种类、房间图片、住宿费、促销活动、旅馆地址、交通工具、附近旅游地点的图文简介、饮食餐厅、天气预告等资讯。
预约系统,并提供透过Internet预约房间的服务。在电脑输入身分证号码、预约日期、房间种类,即可完成旅馆房间预约的手续。
预约时,预约系统提供可以增加、取消、查询预约的功能。
住宿费用可由信用卡、划拨、或银行转帐来支付。
邮件运送线上查询预约系统
「邮件运送线上查询预约系统」,可以透过Internet,提供查询运送状况、预约快递的功能。
想查询邮件运送状况的人,透过Internet,连线上邮局、快递公司的「邮件运送线上查询预约系统」,在电脑输入要查询的邮件运送号码,即可查询邮件运送的状况,是否已经到达。
送达时将自动传送E-Mail通知客户。
「邮件运送线上查询预约系统」也可提供快递预约的功能,客户透过Internet,输入要预约的取货地点、运送种类、取货日期、寄送地点等,即可完成快递预约的手续,通知来取货。
预约时,预约系统提供可以增加、取消、查询预约的功能。
送货人员取货、送达时,透过Internet,更新运送的状况。

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本