为了对本系统后台的数据库中数据表有一个更清晰的认识,在此特设计一个数据表树型结构图,该数据表树型结构图包含系统所有数据表,如图3所示。
图3 数据表树型结构图
2.数据表的结构
关于数据库中的数据表请参见附录B。
4 前台主要功能模块详细设计
4.1 前台文件总体架构
1.功能模块介绍
前台页面主要包括以下功能模块:
网站导航:主要包括网站的旗帜导航条和站内导航条两个部分。
新车推荐:网站推荐的商用车。
乘用车展台:主要介绍最新的乘用车。
汽车租赁:主要介绍租赁汽车的流程。
公告:本站的最新公告。
站内搜索:按类别搜索汽车的相关信息。
最新信息:显示最新的八条新闻信息。
后台登录入口:为管理员进入后台提供一个入口。
2.前台页面运行结果
前台首页运行结果如图4所示。
图4 网站前台运行结果
前台页面的各部分说明以列表形式给出,如表1所示。
表1 前台首页解析
区域 名称 说明 对应文字
1 网站导航 主要拥护网站的旗帜广告和站内导航 index.asp
2 乘用车推荐 是网站推荐的商用车 index.asp
3 乘用车展台 主要是介绍最新的乘用车 index.asp
4 汽车租赁 主要是介绍租赁汽车的流程 index.asp
5 公告 是本站的最新公告 index.asp
6 站内搜索 按类别搜索汽车的相关信息 index.asp
7 最新信息 显示最新的八条新闻信息 index.asp
8 后台登录入口 为管理员进入后台提供一个入口 index.asp
4.2 站内搜索模块设计
站内搜索是按类别,对指定的车辆参数的关键字进行模糊查询。该功能由两部分组成,一部分是查询条件输入部分,另一部分是查询结果显示部分,如图5所示。
图5 站内搜索页面设计效果
查询条件输入部分涉及的HTML表单元素如表2所示。
表2 查询条件输入部分涉及的HTML表单元素
名称 类型 含义 重要属性
form1 form 表单 method="post" action="search.asp"
pinpai text 查询品牌关键字 size="15"
xinghao text 查询型号关键字 size="15"
select select 车辆的类别 <option>乘用车</option>
<option>商用车</option>
Submit submit 查询按钮
按类别对指定车辆参数的关键字进行模糊查询,并显示相应查询结果,其代码如下:
<!--#include file=DataBase/conn.asp-->
<%
'取得记录集
selectd=request("select") '获取类别
xinghao=request("xinghao") '获取型号
pinpai=request("pinpai") '获取品牌
if xinghao="" and pinpai="" then '判断接收的值是否都为空
response.Write("<script language=java script>alert('最少输入一个条件');location='java script:history.go(-1)'</script>")
else
select case selectd
case "乘用车"
if xinghao="" then '当型号为空时
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from tb_Cars_s where pinpai='"&pinpai&"' "
rs2.open sql2,conn,1,1
elseif pinpai="" then '当品牌为空时
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from tb_Cars_s where xinghao='"&xinghao&"'"
rs2.open sql2,conn,1,1
else
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from tb_Cars_s where pinpai='"&pinpai&"' and xinghao='"&xinghao&"'"
rs2.open sql2,conn,1,1
end if
case "商用车"
if xinghao="" then '当型号为空时
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from tb_Cars_sy where pinpai='"&pinpai&"' "
rs2.open sql2,conn,1,1
elseif pinpai="" then '当品牌为空时
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from tb_Cars_sy where xinghao='"&xinghao&"'"
rs2.open sql2,conn,1,1
else '当两个条件都不为空时
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from tb_Cars_sy where pinpai='"&pinpai&"' and xinghao='"&xinghao&"'"
rs2.open sql2,conn,1,1
end if
end select
%>
<%
if not rs2.eof then
tel=rs2.recordcount '获取总记录数
rs2.pagesize=5 '每页显示的记录数
maxpage=rs2.pagecount '获取总共的页数
requestpage=clng(request("p")) '获取接收的页码
if requestpage="" or requestpage=0 then ‘当接收页码的值为空或者0时使其等于1
requestpage=1
end if
if requestpage>maxpage then ‘在接收页码的值大于最大页码时,使其等于最大页码
requestpage=maxpage
end if
if not requestpage=1 then
rs2.move (requestpage-1)*rs2.pagesize
end if
for i=1 to rs2.pagesize and not rs2.eof
%>
<table width="90%" border="0" align="center" cellspacing="0" class="dibian">
<tr>
<td width="46%" height="45" rowspan="2" class="bottm"><div align="center">
<%if selectd="商用车" then%><img src="Mangage/<%=rs2("jianjietupian")%>" width="140"
height="105"><% Else %><img src="Mangage/<%=rs2("tupianjianjie")%>" width="140" height="105">
<% End If %></div></td>
<td width="54%" height="18" class="bian">名称:<%=rs2("pinpai")%></td>
</tr>
<tr>
<td valign="top" class="bian"><br>
<%=rs2("wenzijianjie")%></td>
</tr>
<tr>
<td ><div align="center">参考价格:<%=rs2("shoujia")%>(万元)</div></td>
<td class="zuobian" ><div align="right">
<%if selectd="商用车" then%>
<a href="zhantaiopen1.asp?id=<%=rs2("id")%>">详细参数</a>
<% Else %>
<a href="zhantaiopen.asp?id=<%=rs2("id")%>">详细参数</a>
<% End If %>
<a href="java script:" onClick="window.open('ydinggou.asp?name=<%=rs2("pinpai")%>','','width=500,height=600')">在线订购</a></div></td>
</tr>
</table>
<%
Rs2.MoveNext ‘从集合中的当前记录移动到下一记录
if rs2.eof then exit for ‘如果记录集为空那么跳出循环
next
Rs2.Close ‘关闭记录集对象
Set Rs2=Nothing ‘清空记录集
else
response.Write("暂无车辆信息")
end if
%>
</p>
<table width="90%" border="0" align="center">
<tr>
<td align="right"><span class="css">共<%= maxpage %>页 当前页:
<%= requestpage %></span>
<a href="search.asp?p=<%=requestpage-1%>&select=<%=selectd%>&xinghao=<%=xinghao%>&pinpai=<%=pinpai%>">上一页</a>
<a href="search.asp?p=<%=requestpage+1%>&select=<%=selectd%>&xinghao=<%=xinghao%>&pinpai=<%=pinpai%>">下一页</a></td>
</tr>
</table>
站内搜索模块的运行结果如图6所示。
图6 站内搜索页面的运行结果
4.3 展台中心模块设计
展台中心有三个类别,分别是:乘用车、商用车和租赁车。用户可以通过分类导航,进入相应的展台,其设计效果如图7所示。在展台中单击“详细参数”超级链接,可以查看车辆的详细参数,其设计效果如图8所示。
图7 分类车辆展台页面设计效果
图8 车辆详细参数页面设计效果 首页 上一页 1 2 3 4 5 6 下一页 尾页 2/6/6
1.车辆分类展示页面
乘用车展台、商用车展台和租赁车展台的实现方法比较类似,我们只介绍乘用车展台,商用车和租凭车展台的制作方法都不再赘述。代码如下:
<%
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from tb_Cars_s order by id desc" ‘获得乘用车的记录集
rs2.open sql2,conn,1,1
'每页显示的记录数
shum=5
if not rs2.eof then
tel=rs2.recordcount '总记录数
rs2.pagesize=shum '获取每页显示的记录数
maxpage=rs2.pagecount '获取总共的页数
requestpage=clng(request("p")) '获取接收页码
if requestpage="" or requestpage=0 then '当接收页码的值为空或者0时使其等于1
requestpage=1
end if
if requestpage>maxpage then '在接收页码的值大于最大页码时,使其等于最大页码
requestpage=maxpage
end if
if not requestpage=1 then
rs2.move (requestpage-1)*rs2.pagesize ‘向上或向下移动相应的记录
end if
for i=1 to rs2.pagesize and not rs2.eof
%>
<table width="90%" border="0" align="center" cellspacing="0" class="dibian">
<tr>
<td width="46%" height="45" rowspan="2" class="bottm"><div align="center"><img src="Mangage/<%=rs2("tupianjianjie")%>" width="140" height="105"></div></td>
<td width="54%" height="18" class="bian">名称:<%=rs2("pinpai")%></td>
</tr>
<tr>
<td valign="top" class="bian"><br>
<%=rs2("wenzijianjie")%></td>
</tr>
<tr>
<td ><div align="center">参考价格:<%=rs2("shoujia")%>(万元)</div></td>
<td class="zuobian" ><div align="right"><a href="zhantaiopen.asp?id=<%=rs2("id")%>">详细参数</a> <a href="java script:" onClick="window.open('ydinggou.asp?name=<%=rs2("pinpai")%>','','width=500,height=600')">在线订购</a></div></td>
</tr>
</table>
<%
Rs2.MoveNext '从集合中的当前记录移动到下一记录
if rs2.eof then exit for '如果记录集为空那么跳出循环
next
Rs2.Close '关闭记录集对象
Set Rs2=Nothing '清空记录集
else
response.Write("暂无车辆信息") ‘记录集为空时,显示的信息
end if
%>
</p> <table width="90%" border="0" align="center">