Ⅰ 谁能给我一个用asp做的购物车的完整代码,session或者cookies做的都可以。拜托了!
网上购物已成为生活的潮流,在网上购物之后,想要随时查看自己已买的东西,想要随时删除或修改某件商品数量,要怎么做呢?下面我就来写代码及释义。先来做用户登陆页面(login.asp):
<html>
<head>
<title>购物车的实现</title>
</head>
<body>
<formmethod="post"action="check.asp">
<tablewidth="200"border="1">
<tr><tdwidth="107">用户名:</td>
<tdwidth="77"><inputtype="text"name="username"id="username"/></td></tr>
<tr><td>密码:</td>
<td><inputtype="password"name="userpass"id="userpass"/></td></tr>
<tr><tdcolspan="2"><inputtype="submit"value="登录"></td>
</tr>
</table>
</form>
</body>
</html>
然后来写接收用户所填写的信息以检查是否存在该用户的页面(check.asp),如果存在该用户,那么就跳到购物的首页(index.asp):
<%
uname=request.Form("username")
upass=request.Form("userpass")
sql="select*fromuserswhereuname='"&uname&"'anpass='"&upass&"'"
setrs=server.CreateObject("adodb.recordset")
rs.opensql,conn,3,1
ifnotrs.eofthen
用户登陆成功之后,将用户名放入session里,并给用户分配一个订单,就像去超市购物推着一个购物车,此时这个购物车是属于你的,用用户名和系统时间作为购物车的名字,然后跳转到购物首页。
session("name")=uname
session("orderid")=time&uname
response.Redirect("index.asp")
else
%>
<script>
alert("用户名或密码不正确!");
history.back();
</script>
<%
endif
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
那么,接下来就是购物的首页(index.asp)了
<!--#includefile="inc/conn.asp"-->
<html>
<head>
下面用css样式表将表格里的字体统一设置为14号字
<styletype="text/css">‘
<!--
table{
font-size:14px;
}
-->
</style>
</head>
<body>
<%
如果用户没登陆就直接打开购物首页,那么就跳转到登陆页面
ifsession("name")=""then
response.Redirect("login.asp")
endif
%>
做一个搜索的文本框,方便用户搜索商品。其原理是这样的:用户填入要搜索的商品后,通过表单提交到本页面,从数据库中查找像用户填写的字符串的商品,再显示出来
<formmethod="post"action="index.asp">
<inputtype="text"size="15"name="search"id="search"/><inputtype="submit"value="搜索"/>
</form>
<%
searchname=request.Form("search")‘得到用户填写的字符串
sql="select*fromproctswherepnamelike'%"&searchname&"%'"‘写sql语句,查找出结果
setrs=server.CreateObject("adodb.recordset")‘设置一个结果集对象
rs.opensql,conn,3,1
whilenotrs.eof‘循环输出商品的相关信息
%>
每个商品下面都有一个购买按钮,需要做一个表单
<formmethod="post"action="buy.asp">
<tablestyle="float:left">
<tr>
<tdwidth="103"rowspan="3"><ahref="proct.asp?id=<%=rs(0)%>"><imgsrc="images/<%=rs(2)%>"width="100"height="100"border="0"></a><inputtype="hidden"name="id"value="<%=rs(0)%>"><inputtype="hidden"name="price"value="<%=rs(3)%>"/></td>
<tdwidth="107">名称:
<%=rs(1)%></td>
</tr>
<tr>
<td>价格:<%=rs(3)%></td>
</tr>
<tr>
<tdalign="center"><inputtype="submit"name="buy"value="购买"/></td>
</tr>
</table>
</form>
<%
rs.movenext‘指向下一个记录
wend
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
</body>
</html>
如果用户想要查看商品更详细的信息,那么就应该将商品图片做成一个超链接,连接到proct.asp,在该页面显示详细信息。在该页面也有一个购买按钮,点击之后同样跳到buy.asp:
<!--#includefile="inc/conn.asp"-->
<body>
<%
pid=request.QueryString("id")
response.Write(pid)
sql="select*fromproctswherepid="&pid
setrs=server.CreateObject("adodb.recordset")
rs.opensql,conn,3,1
ifnotrs.eofthen
%>
<tablewidth="387"height="119">
<tr>
<tdwidth="120"rowspan="4"><imgsrc="images/<%=rs(2)%>"width="100"height="100"></td>
<tdwidth="276">名称:<%=rs(1)%></td>
</tr>
<tr>
<td>价格:<%=rs(3)%></td>
</tr>
<tr>
<tdheight="30"><%=rs(4)%></td>
</tr>
<tr>
<tdalign="center"><inputtype="button"onclick="javascript:location.href='buy.asp?id=<%=rs(0)%>&price=<%=rs(3)%>'"value="购买"></td>‘点击购买之后触发一个onclick事件,跳转到buy.asp
</tr>
</table>
<%
endif
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
</body>
</html>
用户点击了购买以后,将该商品的id传到buy.asp,下面来写buy.asp的代码:
<!--#includefile="inc/conn.asp"-->‘将连接数据库的字符串包含进来
<%
pid=request("id")‘得到商品的id
price=request("price")‘得到商品的价格
sql="select*frommrcarwherepid="&pid&"andorderid='"&session("orderid")&"'"‘写sql语句来查询
setrs=server.CreateObject("adodb.recordset")
rs.opensql,conn,3,1
如果用户所要购买的商品已经买过,那么就直接在原来的基础上加1,否则的话,就插入记录
ifnotrs.eofthen
sql="updatemrcarsetpcount=pcount+1wherepid='"&pid&"'andorderid='"&session("orderid")&"'"
conn.executesql
response.Redirect("mycar.asp")
else
sql="insertintomrcar(orderid,pid,price,pcount)values('"&session("orderid")&"',"&pid&","&price&",1)"
conn.executesql
response.Redirect("mycar.asp")
endif
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
执行完了sql语句之后将跳转到购物车页面(mycar.asp),显示出用户所购买的商品。并且有修改数量的按钮和删除的超链接
<!--#includefile="inc/conn.asp"-->
<%
sql="selecta.*,b.pnamefrommrcara,proctsbwhereorderid='"&session("orderid")&"'anda.pid=b.pid"
setrs=server.CreateObject("adodb.recordset")
rs.opensql,conn,3,1
%>
<formmethod="post"action="update.asp"name="form1">
<tableborder="1">
<tr><td>orderid</td>
<td>商品名称</td>
<td>商品id</td>
<td>单价</td>
<td>数量</td>
<td>删除</td>
<td>修改</td>
</tr>
<%
sum=0
i=1‘这里的i值到后边有介绍
whilenotrs.eof‘将所购买的商品循环输出
%>
<tr><td><%=session("orderid")%></td>
<td><%=rs("pname")%></td>
<td><%=rs(1)%></td>
<td><%=rs(2)%></td>
<td><inputtype="text"size="10"value="<%=rs(3)%>"name="pcount"></td>
<td><ahref="delete.asp?id=<%=rs(1)%>">删除</a></td>
<td><inputtype="button"onclick="javascript:document.form1.action='update.asp?rowcount=<%=i%>&pid=<%=rs(1)%>';document.form1.submit();"value="确认修改"></td>
</tr>
<%
i=i+1
sum=sum+cint(rs(2))*rs(3)‘计算总价格
rs.movenext
wend
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
</table>
</form>
<ahref="index.asp">返回继续购物</a>
总金额为:<%=sum%>
点击修改数量的按钮之后,就跳到update.asp:
<!--#includefile="inc/conn.asp"-->
<%
这里需要注意在上个页面,有个i值,在这里就用到了,你要指明修改的是哪一行记录
i=request.querystring("rowcount")
pcount=request.form("pcount")(i)
pid=request.querystring("pid")(i)
sql="updatemrcarsetpcount="&pcount&"wherepid="&pid&"andorderid='"&session("orderid")&"'"
conn.executesql
conn.close
setconn=nothing
response.redirect("mycar.asp")‘执行完之后重新跳转到mycar.asp
%>
同样点击删除之后,就跳到delete.asp,在该页面得到商品的id
<!--#includefile="inc/conn.asp"-->
<%
pid=request.QueryString("id")
response.write(pid)
sql="deletefrommrcarwherepid="&pid&"andorderid='"&session("orderid")&"'"
conn.executesql
conn.close
setconn=nothing
response.Redirect("mycar.asp")‘执行完之后重新跳转到mycar.asp
%>一个简单的购物车做好了,它用到了连接数据库、数据库的增、删、改、查。
Ⅱ asp+access购物车,求sql语句实现数据库中数量列的数字相加
select id count(数量列) from 表名 where id = 你的session(“id”) group by id
Ⅲ JAVA SQL问题 购物车 把商品加入购物车使用什么方法
再加一个表格列:是否已加入购物车
点击按钮后,进行入库操作,insert语句
不行,这样的话,只能加,不能减
你应该在每行添加一个checkbox复选框
勾选了,就代表入库了,取消了就delete
对,就是这样
Ⅳ 用MVC写一个购物车系统,里面servlet 输入要做一个sql的插入语句。try里面语句不能执行
不是try里面的语句不执行,是你try里面的语句执行的时候出错了,所以程序进入catch代码了。好好检查下你的insert语句,估计是有问题的。还有,你的代码可以再优化下,代码不够整洁,思路也不是很清晰
Ⅳ asp制作网页-放入购物 sql="insert into cartitems (cartid,proctid,name,price,quantity)"&_ "values("
price,quantity都是什么类型的?加单引号试试
什么数据库?如果是sql server 的话
sql="insert into cartitems (cartid,proctid,name,price,quantity)"&_
"values("&cartid&","&id&",'"&name&"',"&price&","&quantity&")"
response.write(sql)
conn.execute sql
把在页面显示的语句复制到查询分析器里面运行看看,会提示错误的。
如果是access的,又不提示具体错误的,可以试试加单引号
Ⅵ 帮我写个通过用户ID获取购物车所有信息的sql语句,以及添加到购物车的SQL语句
insert gouwuche(字段名) select * from table_name where id = '***'
Ⅶ 高分求一ASP+SQL2000的购物车代码
简述购物车原理
设置一Session
添加产品事 将产品Id加入Session(Pro_Id)
删除购物车产品时 将对应的产品ID从Session里减掉
购物车的列表就是一条sql语句
sesect * from 表 where 产品Id in(Session(Pro_Id)
)
就这么简单,自己琢磨琢磨吧,独立思考问题,工作中才不被动!
Ⅷ 请问使用vs2005和sql制作购物车的步骤或教程..c#和vb 都可
最简单的就是用Session保存,比如用户点击商品1放入购物车时:
Session["want"] = Convert.ToString(Session["want"]) + "商品1,";
用户从购物车删除商品1时:
Session["want"] = Convert.ToString(Session["want"]).Relpace("商品1,","");
查看购物车时,
string[] allWant = Convert.ToString(Session["want"]).Split(',');
//接着分别处理各个商品ID,得到商品信息啊什么的。
上面这个思路简单吧,用数据库也可以,不过数据库里容易出现一堆垃圾数据,而且效率不高。
Session也不会占用太多内存。
Ⅸ 怎么写一条sql2005语句把相同的商品加入购物车数量加1,而不是重复地把相同的商品写入数据库,大神帮忙
update 表名 set 字段名=字段名+1 where id =条件
用错sql了,你那是插入,如果想更新值,用update
Ⅹ 请帮忙写个sql语句(sqlserver2000)
创建的存储过程如下:
create proc proc_pc(存储过程名)
@proid int,
(你的商品编号,注意:如proct表中是自动生成的即可以不用插入该字段)
@userid int(用户的id),
@cartid int(购物车编号)
as
insert into cart
values (@cartid ,@proid, @userid )
update proct
set prokucun = prokucun - 1
where proid = @proid