php實現購物車功能的方法:先登入網站中瀏覽商品;然後購買指定的商品,進入購物車頁面中,並在該頁面實現更改商品數量、刪除商品、清空購物車、繼續購物等;最後實現產生訂單,提交訂單等操作即可。
本文介紹一個php實作的購物車程式碼,功能實作完整,具有一定的參考價值
這裡我們為你提供個簡單的php購物車程式碼,從增加購物產品與發生購買了,在商城開發中,這個功能是少不了的
具體分析如下:
對購物車裡商品的操作大體上有以下幾個:新增商品,刪除商品,以及提交訂單;
方法本質是:把session存入array,對array進行增加、刪除、修改操作,array中的每一組記錄都是一個商品的資訊(個數,價格等);
解決購物車的想法是用session記錄一個二維數組。一維代表每一個商品,二維包含了商品的id,商品的數量...等可以自行增加,反正都是二維了,自己願意帶多少個商品屬性就加上去。
購物車的操作流程:首先,登入網站中瀏覽商品;然後,購買指定的商品,進入購物車頁面中,在該頁面可以實現更改商品數量、刪除商品、清空購物車、繼續購物等;最後,產生訂單,提交訂單等操作。
詳細請看強大的註解;
先登入;
登入页面
圖:
登錄處理:
Query($sql); if(!empty($zhang)&&!empty($mi)&&$mi = $arr){ $_SESSION["zhang"] = $zhang; header("location:zym.php"); } else { echo "登入失败"; } ?>
很簡單的一個登入,沒啥說的;
他登錄完了以後直接進入主頁:
长腿璇购物商城
代号 | 水果名称 | 水果价格 | 水果产地 | 水果库存 | 操作 |
{$v[0]} | {$v[1]} | {$v[2]} | {$v[3]} | {$v[4]} | 加入购物车 |
來圖:
當我點擊加入購物車:
#上面的數量與價格改變了,說明已經加到了購物車裡面;
來看一下是怎麼處理的(強大的註解):
接下來做一下購物車的頁面:
查看购物车
商品名称 | 商品单价 | 商品数量 | 操作 |
{$a[1]} | {$a[2]} | {$v[1]} | 删除 |
#上圖:
##可以看到大蘋果的數量是4,若是我點刪除,其條件便是存在大蘋果,且數量大於一,點擊刪除使數量減一:
#白葡萄的數量是1,若我點擊刪除,其條件是數量不大於一,使其移除數組;
說了這些快來看看刪除頁面吧:
$v)
{
if($v[0]==$ids)
{
if($v[1]>1){
//要删除的数据
$arr[$key][1]-=1;
}
else{
//数量为1的情况下,移除该数组
unset($arr[$key]);
}
}
}
$_SESSION["gwc"] = $arr;
//记得扔到session里面
header("location:ckgwc.php");
//删除完跳转回去
提交訂單頁面,我只來一個處理頁面吧,小夥伴若有需要自己填連結即可:
來看看點擊提交訂單後的效果: 1.減少水果庫存: 2.新增訂單: 3.新增訂單內容: 4.扣除購買人的帳戶餘額: 以上便是購物車內容###### 以上是php如何實現購物車功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!query($sye);
$ye[0][0];//这是余额
$ann=array();
if(!empty($_SESSION["gwc"]))
{
$ann=$_SESSION["gwc"];
}
$zhonglei = count($ann);
$aa=0;//总价格
foreach($ann as $k)
{
$k[0];//水果代号
$k[1];//水果数量
$sql1="select jiage from sgbiao where ids='{$k[0]}'";
$danjia=$db->Query($sql1);
foreach($danjia as $n)
{
$aa=$aa + $n[0]*$k[1];
}
}
//判断余额是否满足
if($ye[0][0]>=$aa)
{
//钱够,判断库存
foreach($ann as $v)
{
$skc = "select sgname,kucun from sgbiao WHERE ids='{$v[0]}'";
//水果代号$v[0]
$akc = $db->query($skc);
$akc[0][1];//库存
//比较是否满足库存
if($akc[0][1]<$v[1])
{
echo "{$akc[0][0]}库存不足";
//退出
exit;
}
}
//提交订单:
//i. 从用户账户中扣除本次购买的总价格
//ii. 从商品库存中扣除本次每种商品的购买数量
//iii. 向订单表和订单内容表中加入本次购买的商品信息
//扣除账户余额
$skcye = "update yonghu set zhanghu = zhanghu-{$aa} WHERE zhang = '{$zhang}'";
$db->query($skcye,0);
//扣除库存
foreach($ann as $v)
{
$skckc = "update sgbiao set kucun = kucun-{$v[1]} WHERE ids='{$v[0]}'";
//水果代号$v[0]
$db->query($skckc,0);
}
//添加订单信息
//取当前时间
$time = time();
//自动生成订单号
$ddh = date("YmdHis");
$sdd = "insert into dingdan VALUES ('{$ddh}','$zhang','$time')";
$db->query($sdd,0);
//添加订单内容
foreach ($ann as $v)
{
$sddxq = "insert into ddneirong VALUES ('','$ddh','{$v[0]}','{$v[1]}')";
$db->query($sddxq,0);
}
}
else
{
echo "钱不够";
exit;
}