图书销售系统系统实施

    1. 后台系统的实现

每一个需要存取数据的网站都必须与数据库进行连接,连接数据库的包含文件:includes/dbconn.inc,代码如下:

<%

Function openDB()

 set conn=server.createobject("adodb.connection")

 set rs=server.createobject("adodb.recordset")

 ConnString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=olbs;Data Source=(local);PWD=sa"

 conn.Open ConnString

end function

Function closeDB()

 set rs=nothing

 conn.close

 set conn=nothing

end function

%>

    1.  页面设计实施

    页面是一个网站的窗口,它要反映公司的主要经营内容,要反映公司最基本的精神面貌、文化底蕴。因此,所设计的网页要力求美观大方、容易操作。另外,这里要说明的是,本系统作为一个毕业设计,更注重的是后台功能的实现。

      1.  前台页面设计实施

前台页面主要是登录页面、用户查询页面、用户订购页面等等,要设计好页面的布局,各个链接按钮的排列、主要的图形的设计要美观、合理,能反映出网站的特色和网站的内容。

图4-1  系统主页

  1. 主页说明:主页以“网城书店”命名,页面上的热点图书可以提供给我们最近的热点图书,还有图书搜索、管理员、购物车的快捷链接图标。只要点击相应的图标就可以进入相关的网页。

                        图4-2  顾客查询图书页面

  1. 顾客查询图书页面的说明:
    1. 当客户点击主页上的“搜索图书”后系统链接到bookquery.asp,该页面具有查询功能,客户可以根据图书名、ISBN号直接进行查询,或通过图书类别、图书子类别、出版社进行分类查找。
    2. 主要代码为:

sql="select categoryname from categories"

set rs=conn.execute(sql)

while not rs.eof

%>

<option><%=rs("categoryname")%></option>

         <%

         rs.movenext

        wend

        %>

        </select></p>                                             

        <p>  图书子类别<select size="1" name="subcategoryname">                                 

        <option selected>-请选择-</option>

        <%

sql="select subcategoryname from subcategories"

set rs=conn.execute(sql)

while not rs.eof

%>

<option><%=rs("subcategoryname")%></option>

         <%

         rs.movenext

        wend

        %>

        </select></p>                                 

        <p>  出版社    <select size="1" name="suppliername">  

        <option selected>-请选择-</option>

        <%

sql="select suppliername from suppliers"

set rs=conn.execute(sql)

while not rs.eof

%>

<option><%=rs("suppliername")%></option>

         <% rs.movenext%>

        wend

图4-3  要选定的图书加入购物车页面

  1. 要选定的图书加入购物车页面说明:
    1. 如果客户要购买图书则填写购买此书的册数,后点击“放入购物车”按钮,此时,客户所购的书放入购物车中。
    2. 放入购物车的代码如下 :

while not rs.eof

htmlcode="<td width=20% align=right>"&"<img border=0 src="""&rs("imageurl")&""">"

htmlcode=htmlcode&"</td>"

htmlcode=htmlcode&"<td width=80%\><b><font size=4>"&bookname&"</font></b><br>ISBN:"

htmlcode=htmlcode&rs("isbn")&"  "&rs("suppliername")&"<br>"

    if rs("discount")<>0 then

     htmlcode=htmlcode&"<strike>原价:"&rs("price")&"元</strike> 现价:"&rs("price")*(100-rs("discount"))/100&"元!"

     else

    htmlcode=htmlcode&rs("price")&"元<br>"

     end if

     availstock=rs("availstock")

htmlcode=htmlcode&"在库数目:"&availstock&"<p></p>"

htmlcode=htmlcode&"<center>内容简介</center><br><center><div width=80%\>"&rs("details")&"</div></td>"

response.write htmlcode

rs.movenext

wend

图4-4  购物车页面

  1. 购物车页面说明:
    1.  客户可以在本页面进行购买书籍的调整,如果想修改购书数目则重新输入数量,如后点击“GO”进行更新。如果客户决定购买则点击“我要结帐”。
    2. 相应得主要代码为:

dim arrCart, cartIndex,i,htmlcode,total0,total1

arrCart = Session("MyCart")

cartIndex = Session("cartIndex")

count=0

for i=0 to CartIndex

if arrCart(i,2)<>"" then

     if arrCart(i,2)>0 then

     count=count+1

     end if

    end if

next

if count = 0 then

htmlcode="your cart is empty.<br>"

htmlcode=htmlcode&"<a href=""bookincategory.asp""><<back</a>"

response.write htmlcode

else

图4-5  用户注册

  1. 用户注册说明:
    • 当客户点击我要结帐时要输入客户名,如果没有注册则需要注册,在注册时要填写详细的地址、姓名、邮政编码,以防止误投。
    • 相应的注册代码如下:

dim htmlcode

username = request.form("username")

password   = request.form("password")

realname    = request.form("realname")

phone   = request.form("phone")

email = request.form("email")

add = request.form("add")

city     = request.form("city")

state = request.form("state")

zip = request.form("zip")

call openDB()

sql="select username from customers where username='"&username&"'"

set rs=conn.execute(sql)

if not rs.eof then

htmlcode="the username you choosed has been used by others please choose an other username"

htmlcode=htmlcode&"<a href=""regist.asp""><<back</a>"

response.write htmlcode

else

sql="insert into customers(username,password,realname,phone,email,add,city,state,zip) values ('"

sql=sql&username&"','"&password&"','"&realname&"','"&phone&"','"&email&"','"&add&"','"&city&"','"&state&"',"&zip&")"

set rs=conn.execute(sql)

sql="select Max(idcustomer) as idcust from customers"

set rs=conn.execute(sql)

Session("idcustomer")=rs("idcust")

call closeDB()

response.redirect "orderverify.asp"

end if

call closeDB()

      1.  后台页面设计实施

后台页面用于数据库中的信息查看和修改,只有通过管理员的密码认证才能进入系统,进行数据的添加、修改和查看。后台页面要方便操作人员的操作。

图4-6  管理员登录

  1. 管理员登录页面说明:
    • 只有通过管理员用户名、密码验证后才可进入系统后台对系统数据进行管理,重写可清空文本框中的用户名和密码。
    • 主要代码为:

if Session("adminname")="" then

adminname=request.form("adminname")

pws=request.form("pws")

if adminname="" or pws="" then

else

call openDB()

sql="select adminname from admin where adminname='"&adminname&"' and pws='"&pws&"'"

set rs=conn.execute(sql)

if rs.eof then

response.redirect "adminlogin.asp"

else

Session("adminname")=rs("adminname")

end if

call closeDB()

response.redirect "admin.asp"

end if

else

response.redirect "admin.asp"

end if

图4-7  新建图书类别

  1. 新建图书类别页面说明:
    • 该页面用于增加图书类别,如:英语类、化工类等等。当添加进类别之后就可以进行新书的录入。
    • 主要代码为:

      if addcategory<>"" then

       call openDB()

       sql="insert into categories (categoryname) values ('"&addcategory&"')"

       set rs=conn.execute(sql)

       call closeDB()

       response.redirect"addcategory.asp"

      elseif addsubcategory<>"" then

       call openDB()

       sql="select idcategory from categories where categoryname='"&categoryname&"'"

       set rs=conn.execute(sql)

       idcategory=rs("idcategory")

       sql="insert into subcategories(subcategoryname,idcategory) values ('"&addsubcategory _

       &"',"&idcategory&")"

       set rs=conn.execute(sql)

       call closeDB()

       htmlcode="<a href=""admin.asp"">新建图书子类别成功</a>"

       response.write htmlcode

      end if

                            图4-8  新书入库网页

  1. 新书入库网页说明:
    • 管理员要根据入库单据进行新书的录入,在录入过程中要要择正确的图书类别、与出版社名,这样才能使用户在查询时容易查找。
    • 主要代码为:

     sql="select bookname from books where bookname='"&bookname&"' and isbn='"&isbn&"'"

set rs=conn.execute(sql)

if not rs.eof then

htmlcode="错误!输入的书籍已经在库!"

htmlcode=htmlcode&"<a href=""addbook.asp"">重试</a><p></p><a href=""admin.asp"">返回</a>"

response.write htmlcode

    else

     sql="select idcategory from categories where categoryname='"&categoryname&"'"

     set rs=conn.execute(sql)

     idcategory=rs("idcategory")

sql="select idsubcategory from subcategories where subcategoryname='"&subcategoryname&"'"

     set rs=conn.execute(sql)

     idsubcategory=rs("idsubcategory")

     sql="select idsupplier from suppliers where suppliername='"&suppliername&"'"

     set rs=conn.execute(sql)

     idsupplier=rs("idsupplier")

     sql="insert into books(idcategory,idsubcategory,idsupplier,bookname,isbn,details,orgcost,price,discount," _

     &"imageurl,stock,availstock,active,hotdeal,sales,visits) values(" _

&idcategory&","&idsubcategory&","&idsupplier&",'"&bookname&"','"&isbn&"','"&details&"',"&orgcost&","&price&","&discount&",'" _

     &imageurl&"',"&stock&","&availstock&","&active&","&hotdeal&",0,0)"

     set rs=conn.execute(sql)

     sql="select idbook from books where bookname='"&bookname&"' and isbn='"&isbn&"'"

     set rs=conn.execute(sql)

     if not rs.eof then

     idbook=rs("idbook")

     month_ = month(date)

     day_   = day(date)

     year_  = year(date)

     sql="insert into stockmovements(idbook,datemovement,quantity) values("&idbook&","&month_&"/"&day_&"/"&year_&","&stock&")"

     set rs=conn.execute(sql)

       htmlcode="添加成功!"

       else

       htmlcode="发生问题!"

       end if

            htmlcode=htmlcode&"<p></p><a href=""admin.asp"">返回</a>"

       response.write htmlcode

     end if

    call closeDB()

end if

                            图4-9  改变在库书信息网页

  1. 改变在库书信息网页说明:
    • 管理员要根据“图书名”或“ISBN号”对在库图书查找,并修改相关信息。
    • 主要代码为:

<%

if Session("adminname")="" then

response.redirect "adminlogin.asp"

end if

call openDB()

bookname=request("bookname")

isbn_=request.form("isbn")

details=request.form("details")

price=request.form("price")

discount=request.form("discount")

imageurl=request.form("imageurl")

availstock=request.form("availstock")

active=request.form("active")

hotdeal=request.form("hotdeal")

fromthis=request.form("fromthis")

if bookname="" then '//came from unknown

response.redirect"admin.asp"

end if

if fromthis="" then '// didnt came from this page:

sql="select bookname from books where bookname='"&bookname&"'"

set rs=conn.execute(sql)

if not rs.eof then

sql="select bookname, details,price,discount,imageurl,availstock,active,hotdeal from books where bookname='"&bookname&"'"

else

response.redirect"changstock.asp?msg=书库中没有找到你输入的图书!"

end if

set rs=conn.execute(sql)

'response.write bookname&"<br>"

'response.write sql

'/

%>

<%if not rs.eof then%>

<form method="POST" action="showans_stockc.asp">

<p>书名:<%=rs("bookname")%></p>

<p>售价:<input type="text" name="price" size="20" value=<%=rs("price")%>></p>

<p>折扣:<input type="text" name="discount" size="20" value=<%=rs("discount")%>>%</p>

<p>可售册数:<input type="text" name="availstock" size="20" value=<%=rs("availstock")%>></p>

<p>图片位置:<input type="text" name="imageurl" size="20" value=<%=rs("imageurl")%>></p>

<input type="hidden" name="bookname" size="20" value=<%=rs("bookname")%>>

<p>是否发布:<select size="1" name="active">

<%if rs("active")=1 then%>

   <option selected>是</option>

   <option>否</option>

   <%else%>

   <option>是</option>

   <option selected>否</option>

   <%end if%>

  </select></p>                                               

  <p>是否热点:<select size="1" name="hotdeal">

  <%if rs("hotdeal")=0 then%>

    <option selected>是</option>

    <option>否</option>

  <%else%>

    <option>是</option>

   <option selected>否</option>

<%end if%>

</select></p>                                               

<p align=center>内容简介</p>

<p align=center><textarea rows="8" name="details" cols="80"  ><%=rs("details")%></textarea></p>

<input type="hidden" value="on" name="fromthis">

<p align=center><input type="submit" value="提交" name="B1"> <input type="reset" value="重写"  name="B2"></p>

</form>

<%

end if

    else

if hotdeal="是" then

hotdeal=1

else

hotdeal=0

end if

if active="是" then

active=1

else

active=0

end if

sql="update books set price="&price&",discount="&discount&",imageurl='"&imageurl& _

"',availstock="&availstock&",active="&active&",hotdeal="&hotdeal&",details='"&details&"' where  bookname='"&bookname&"'"

set rs=conn.execute(sql)

'response.write sql&" !!!<br><br><br>"

htmlcode="<p align=center>修改成功!</p><p align=center><a href=""admin.asp""><<返回</a></p>"

response.write htmlcode

'/

end if

call closeDB()

%>

                            图4-10  查询销售状况网页

  1. 查询销售状况网页说明:
    • 管理员可以根据图书的“销售日期段”或“指定查询项(图书相关信息)”对已销售图书查找。
    • 主要代码为:

<%

if Session("adminname")="" then

response.redirect "adminlogin.asp"

end if

dim sql,conn,rs,htmlcode

fromyear=request.form("fromyear")

frommonth=request.form("frommonth")

fromday=request.form("fromday")

toyear=request.form("toyear")

tomonth=request.form("tomonth")

today=request.form("today")

if fromyear<>"" then

call openDB()

sql="select sum(totalmoney) as sumtotal from orders where orderdate between (#"&frommonth&"/"&fromday&"/"&fromyear&"# and #"&tomonth&"/"&today&"/"&toyear&"#)"

set rs=conn.execute(sql)

if rs("sumtotal")="" then

htmlcode="没有销售记录!<a href=""admain.asp"">返回</a>"

response.write htmlcode

else

htmlcode="总销售金额为"&rs("sumtotal")&"元。"

response.write htmlcode

end if%>

<p></p>

<table border="1" width="100%" bordercolor="#C0C0C0" bordercolorlight="#000080" cellspacing="0" cellpadding="0" bordercolordark="#E0E0E0">

<tr align=center>

     <td width="20%">书名</td>

     <td width="16%">类别</td>

     <td width="16%">子类别</td>

     <td width="15%">ISBN</td>

     <td width="15%">出版商</td>

     <td width="9%">库存数</td>

     <td width="9%">已销售</td>

   </tr>

   <%

sql="SELECT DISTINCT books.bookname, books.isbn, categories.categoryname, subcategories.subcategoryname, books.sales, books.stock,"

sql=sql&" suppliers.suppliername FROM (suppliers INNER JOIN ((categories INNER JOIN books ON categories.idcategory = books.idcategory)"

sql=sql&" INNER JOIN subcategories ON (subcategories.idsubcategory = books.idsubcategory) AND "

sql=sql&"(categories.idcategory = subcategories.idcategory)) ON suppliers.idsupplier = books.idsupplier)"

sql=sql&" INNER JOIN orders ON books.idbook = orders.idbook WHERE (((orders.orderdate) "

sql=sql&"Between #"&frommonth&"/"&fromday&"/"&fromyear&"# And  #"&tomonth&"/"&today&"/"&toyear&"#))"

set rs=conn.execute(sql)

while not rs.eof

response.write "<tr><td width=""20%"">"&rs("bookname")&"</td>"

response.write "<td width=""16%"">"&rs("categoryname")&"</td>"

response.write "<td width=""16%"">"&rs("subcategoryname")&"</td>"

response.write "<td width=""15%"">"&rs("isbn")&"</td>"

response.write "<td width=""15%"">"&rs("suppliername")&"</td>"

response.write "<td width=""9%"">"&rs("stock")&"</td>"

response.write "<td width=""9%"">"&rs("sales")&"</td></tr>"

rs.movenext

wend

call closeDB()

response.write "<p></p><a href=""admin.asp"">返回</a>"

%>

</table>

<%

else

response.redirect"salequery.asp"

end if

%>

                            图4-11  查询顾客状况网页

  1. 查询顾客状况网页说明:
    • 管理员可以根据图书的“顾客ID”或“显示所有顾客信息”对注册用户及其他相关信息进行查询。
    • 主要代码为:

<%

dim rsTEMP,displayall,customername

customername = request.form("customername")

call openDB()

displayall=request("displayall")

if displayall="on" then

sql="select * from customers"

else

customername=request.form("customername")

sql="select * from customers where username ='"&customername&"'"

end if

set rs=conn.execute(sql)

if rs.eof then

htmlcode="没有找到该顾客!<a href=""customerquery.asp"">返回</a>"

response.write htmlcode

else

%>

<!--#include file="includes/header.inc"-->

<table border="0" width="100%" cellspacing="0" cellpadding="0" height="362">

  <tr>

    <td width="18%" bgcolor="#EFF6FA" height="362">

<!--#include file="includes/admin_left.inc"-->

    </td>

    <td width="82%" height="362" bgcolor="#F3F3F3">

    

<p></p>

<table border="1" width="100%" bordercolor="#C0C0C0" bordercolorlight="#000080" cellspacing="0" cellpadding="0" bordercolordark="#E0E0E0">

<tr align=center>

     <td width="18%">顾客名</td>

     <td width="15%">真名</td>

     <td width="15%">电话</td>

     <td width="14%">电邮</td>

     <td width="20%">地址</td>

     <td width="8%">邮编</td>

     <td width="10%">购买记录</td>

   </tr>

   <%

   while not rs.eof

response.write "<td width=18%\>"&rs("username")&"</td>"

response.write "<td width=15%\>"&rs("realname")&"</td>"

response.write "<td width=15%\>"&rs("phone")&"</td>"

response.write "<td width=14%\>"&rs("email")&"</td>"

response.write "<td width=20%\>"&rs("add")&"</td>"

response.write "<td width=8%\>"&rs("zip")&"</td>"

response.write "<td width=10%\><a href=""showsales_bycustomer.asp?username="&rs("username")&""">>></a></td>"

rs.movenext

response.write "</tr>"

wend

end if

call closeDB()

%>

</table>

    </td>

  </tr>

</table>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值