急急急急!!文字解释一段ASP购物车的代码。

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

idbook = request.form("idbook")
bookname = request.form("bookname")
purchase = request.form("purchase")
availstock = request.form("availstock")
if purchase <>"" then
purchase=Cint(purchase)
availstock=availstock
if purchase>availstock then
htmlcode="你购买的数量超过了库存图书的数量! <a href=""viewitem.asp?idbook="&idbook&"&bookname="&bookname&""">返回</a>"
response.write htmlcode
else
if purchase>0 then
call openDB()
sql="select price,discount from books where idbook="&idbook&" and bookname='"&bookname&"'"
set rs=conn.execute(sql)
nowprice=rs("price")*(100-rs("discount"))/100
arrCart(CartIndex,0) = idbook
arrCart(CartIndex,1) = bookname
arrCart(CartIndex,2) = purchase
arrCart(CartIndex,3) = nowprice
session("myCart") = arrCart
CartIndex = CartIndex + 1
Session("cartIndex") = CartIndex
call closeDB()
end if
response.redirect "showcart.asp"
end if
else
response.write"你没有选择图书数量!"
end if
%>

在global.asa里面有:
SUB Session_OnStart
Session("idcustomer") = ""
Session("adminname") = ""
Session("cartIndex") = Cint(0)
ReDim arrcart(50,3)
Session("myCart") = arrcart
END SUB

SUB Session_OnEnd
set Session("idCustomer") = Nothing
set Session("adminname") = Nothing
set Session("cartIndex") = Nothing
set Session("myCart") = Nothing
END SUB

重点是arrCart,myCart,cartIndex。
各代表什么。添加商品入购物车的来龙去脉。详细的可以再加分。
其中purchase=要购买的数量
availstock=可销售的数量
bookname=书籍名称

arrCart = Session("myCart") '/// 赋值arrCart 等于 myCart 这个服务器变量
CartIndex = Session("cartIndex") '/// 赋值 CartIndex 等于 CartIndex 这个服务器变量
count=0 '/// 赋值 count = 0
for i=0 to CartIndex '/// 一个循环开始,起点为i=0,终点为i=CartIndex
if arrCart(i,2)<>"" then '/// 如果arrCart这个二维数组中的第i,2项的值不为空,那么。。。
if arrCart(i,2)>0 then '/// 如果 arrCart这个二维数组中的第i,2项的值大于0,那么。。。
count=count+1 '/// 重新赋值count为原count再加上1
end if '/// 结束一个判断
end if '/// 同上
next '/// 结束一个循环

idbook = request.form("idbook") '/// 赋值 idbook 等于 idbook 这个表单值
bookname = request.form("bookname") '/// 类上
purchase = request.form("purchase") '/// 类上
availstock = request.form("availstock") '/// 类上
if purchase <>"" then '/// 如果purchase不为空,那么。。。
purchase=Cint(purchase) '/// 把purchase强制转换为整型变量
availstock=availstock '/// 变量传递(同名变量,不知这步有什么意义@@!)
if purchase>availstock then '/// 如果 purchase 大于 availstock 那么。。。
htmlcode="你购买的数量超过了库存图书的数量! <a href=""viewitem.asp?idbook="&idbook&"&bookname="&bookname&""">返回</a>"
'/// 赋值 htmlcode
response.write htmlcode '/// 输出htmlcode这个值到页面上
else '/// 否则(不满足上面 purchase>availstock的时候)
if purchase>0 then '/// 如果 purchase>0 那么。。。
call openDB() '/// 调用 openDB 这个过程(貌似是一个打开记录集的过程)
sql="select price,discount from books where idbook="&idbook&" and bookname='"&bookname&"'"
'/// 定义一个sql语句
set rs=conn.execute(sql) '/// 调用一个sql(这里是一个查询sql)
nowprice=rs("price")*(100-rs("discount"))/100
arrCart(CartIndex,0) = idbook
arrCart(CartIndex,1) = bookname
arrCart(CartIndex,2) = purchase
arrCart(CartIndex,3) = nowprice
session("myCart") = arrCart
CartIndex = CartIndex + 1
Session("cartIndex") = CartIndex
'/// 上面这几句都是变量传递,没什么好解释的
call closeDB() '/// 调用 closeDB这个过程(应该是关闭记录集的过程吧)
end if '/// 结束一个判断
response.redirect "showcart.asp" '/// 转向到 showcart.asp 这个页面
end if
else 否则(这里比较远,是不满足那个purchase<>""的时候)
response.write"你没有选择图书数量!" '/// 输出“你没有。。。”到页面
end if
%>

【其实你的问题的重点在下面这里】

在global.asa里面有:
SUB Session_OnStart '/// 一个会话开始的时候
Session("idcustomer") = "" '/// 置空该值
Session("adminname") = "" '/// 置空该值
Session("cartIndex") = Cint(0) '/// 赋值服务器变量cartIndex为整型的数字0
ReDim arrcart(50,3) '/// 定义一个二维数组arrcart
Session("myCart") = arrcart '/// 赋值服务器变量myCart等于arrcart这个二维数组
END SUB

SUB Session_OnEnd '/// 一个会话结束的时候(后面都是清空服务器变量的,没什么好解释)
set Session("idCustomer") = Nothing
set Session("adminname") = Nothing
set Session("cartIndex") = Nothing
set Session("myCart") = Nothing
END SUB

arrCart,myCart其实都是用来存贮一个东西:购物车里的货物的信息(用二维数组来存贮)
cartIndex,其实就是你购物车里的货物数量,用来当做上面这个二维数组的游标的
温馨提示:答案为网友推荐,仅供参考
相似回答