php實現(xiàn)購物車產(chǎn)品刪除功能(2)
上一篇的時候只是寫了簡單的加入購物車功能,購物車中產(chǎn)品的刪除、提交訂單后,庫存的減少 以及客戶賬戶的余額都沒有完善,這一篇是接著完善上一篇的,上一篇寫到了購物車中刪除的功能了,為了使刪除的代碼少敲一些,我們要把前面

鏈接刪除頁面的時候 獲取ids的值改為獲取 arr的索引值arr的索引值k 改為
<a href='shanchu.php?sy={$k}'>刪除</a></td>
這樣我們進入刪除頁面后 就可以直接獲取索引值sy 這樣刪除頁面寫起來就簡單多了
下面就是刪除頁面的代碼了 shanchu.php
<?php
session_start();
$sy = $_GET["sy"];
//根據(jù)索引找到該數(shù)據(jù)
$arr = $_SESSION["gwc"];
$arr[$sy]; //要刪除的數(shù)據(jù)
//如果數(shù)量不為1,數(shù)量減1
if($arr[$sy][1]>1)
{
$arr[$sy][1] = $arr[$sy][1]-1;
}
else //如果數(shù)量為1,移除
{
unset($arr[$sy]);
}
$_SESSION["gwc"] = $arr; //最后存一下購物車的內(nèi)容
header("location:gouwuche.php");
這樣刪除頁面就可以了,下面就是提交頁面的代碼了,相對來說比較繁瑣,說到提交頁面,我們會想到的是 庫存、余額,我們只要提交訂單,那么庫存就會減少,相對的 余額也會 減少,當然如果庫存不足,或者余額不足的話,也要給購買者提示。
在這個地方做了兩個表格 用來存儲數(shù)據(jù)的


在gouwuche.php最后的時候加一個標簽
<div><a href="tijiaodd.php" rel="external nofollow" ></a><div>
下面就是tijiaodingdd.php的代碼了
<?php
session_start();
header("Content-type:text/html;charset=utf-8"); //防止出現(xiàn)亂碼
$uid=$_SESSION["uid"];
//先查一下賬戶余額
include("DADB.class.php");
$db=new DADB();
$ysql="select account from login where username='{$uid}'";
$yarr=$db->Query($ysql);
$yarr[0][0];//總額
//購物車的總價格,前面有寫過
$arr=array();
if (!empty($_SESSION["gwc"]))
{
$arr=$_SESSION["gwc"];
}
$sum=0;
foreach($arr as $v)
{
$v[1];//購物車中產(chǎn)品的數(shù)量
$psql="select price from fruit WHERE ids='{$v[0]}'";
$parr=$db->Query($psql);
foreach($parr as $k)
{
$k[0];//產(chǎn)品的單價
$sum+=$k[0]*$v[1];
}
}
//判斷余額是否滿足購買
if($yarr[0][0]>=$sum)
{//余額滿足,要判斷庫存
foreach($arr as $v)
{
$ksql="select number from fruit where ids='{$v[0]}'";
$karr=$db->Query($ksql);
$karr[0][0];//這是庫存
if($karr[0][0]<$v[1]) //表示庫存不足,這時要給顧客提示庫存不足
{
echo"庫存不足";
exit;
}
}
//判斷之后需要提交訂單了
//賬戶扣除余額
$kcsql="update login set account=account-{$sum} where username='{$uid}'";
$db->Query($kcsql,0);//這里是修改語句,所以要加上0
//扣除庫存
foreach($arr as $v)
{
$kcksql="update fruit set number=number-$v[1] where ids='{$v[0]}'";
$db->Query($kcksql,0);
}
//所有的工作都做完了,這時我們就該提交訂單了
// 這里我在數(shù)據(jù)庫中做了兩張表,把提交的訂單添加到表中就可以保存了
//添加訂單
$ddh = date("YmdHis");
$time = date("Y-m-d H:i:s");
$sdd = "insert into orders values('{$ddh}','{$uid}','{$time}')";
$db->Query($sdd,0);
//添加訂單詳情
foreach($arr as $v)
{
$sddxq = "insert into orderdetails values('','{$ddh}','{$v[0]}','{$v[1]}')";
$db->Query($sddxq,0);
}
}
else
{
echo "余額不足";
exit;
}
?>
購物車還是和上一篇購物車中的產(chǎn)品是一樣的,這時我們再去看看數(shù)據(jù)庫中的表。




備注:因為之前有過多次測試用的都是zhangsan的賬號, 所以login表中的account價格發(fā)生了變化,變?yōu)?3.6元,我們放入購物車的產(chǎn)品價格是16.8元,所以這里是沒有問題的。
這樣一個比較簡單的購物車就算徹底的完成了。
相關文章
Laravel 5框架學習之日期,Mutator 和 Scope
這篇文章主要介紹了Laravel 5框架學習之日期,Mutator 和 Scope的相關資料,需要的朋友可以參考下2015-04-04
php中使用gd庫實現(xiàn)下載網(wǎng)頁中所有圖片
這篇文章主要介紹了php中使用gd庫實現(xiàn)下載網(wǎng)頁中所有圖片,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-05-05
Laravel框架實現(xiàn)調(diào)用百度翻譯API功能示例
這篇文章主要介紹了Laravel框架實現(xiàn)調(diào)用百度翻譯API功能,結合實例形式分析了基于Laravel框架的百度翻譯API調(diào)用相關操作技巧,需要的朋友可以參考下2019-05-05

