Ⅰ 誰能給我一個用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