php实现购物车产品删除功能(2)


Posted in PHP onJuly 23, 2020

上一篇的时候只是写了简单的加入购物车功能,购物车中产品的删除、提交订单后,库存的减少 以及客户账户的余额都没有完善,这一篇是接着完善上一篇的,上一篇写到了购物车中删除的功能了,为了使删除的代码少敲一些,我们要把前面

php实现购物车产品删除功能(2)

链接删除页面的时候 获取ids的值改为获取 arr的索引值arr的索引值k  改为

<a href='shanchu.php?sy={$k}'>删除</a></td>
这样我们进入删除页面后  就可以直接获取索引值sy 这样删除页面写起来就简单多了

 下面就是删除页面的代码了 shanchu.php

<?php
session_start();
$sy = $_GET["sy"];

//根据索引找到该数据
$arr = $_SESSION["gwc"];
$arr[$sy]; //要删除的数据

//如果数量不为1,数量减1
if($arr[$sy][1]>1)
{
 $arr[$sy][1] = $arr[$sy][1]-1;
}
else //如果数量为1,移除
{
 unset($arr[$sy]);
}

$_SESSION["gwc"] = $arr; //最后存一下购物车的内容

header("location:gouwuche.php");

这样删除页面就可以了,下面就是提交页面的代码了,相对来说比较繁琐,说到提交页面,我们会想到的是 库存、余额,我们只要提交订单,那么库存就会减少,相对的 余额也会 减少,当然如果库存不足,或者余额不足的话,也要给购买者提示。

在这个地方做了两个表格 用来存储数据的

php实现购物车产品删除功能(2)php实现购物车产品删除功能(2)

在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"); //防止出现乱码
$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];//购物车中产品的数量
 $psql="select price from fruit WHERE ids='{$v[0]}'";
 $parr=$db->Query($psql);
 foreach($parr as $k)
 {
 $k[0];//产品的单价
 $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);
 }

//所有的工作都做完了,这时我们就该提交订单了
// 这里我在数据库中做了两张表,把提交的订单添加到表中就可以保存了

//添加订单
$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;
}

?>

购物车还是和上一篇购物车中的产品是一样的,这时我们再去看看数据库中的表。

php实现购物车产品删除功能(2)

php实现购物车产品删除功能(2)

php实现购物车产品删除功能(2)

php实现购物车产品删除功能(2)

备注:因为之前有过多次测试用的都是zhangsan的账号, 所以login表中的account价格发生了变化,变为33.6元,我们放入购物车的产品价格是16.8元,所以这里是没有问题的。

这样一个比较简单的购物车就算彻底的完成了。

PHP 相关文章推荐
php桌面中心(三) 修改数据库
Mar 11 PHP
实现php加速的eAccelerator dll支持文件打包下载
Sep 30 PHP
php 无限级数据JSON格式及JS解析
Jul 17 PHP
初品cakephp 入门基础
Feb 16 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
PHP抓取、分析国内视频网站的视频信息工具类
Apr 02 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
PHP数组操作类实例
Jul 11 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
PHP isset empty函数相关面试题及解析
Dec 11 PHP
php实现产品加入购物车功能(1)
Jul 23 #PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 #PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 #PHP
PHP输出多个元素的排列或组合的方法
Mar 14 #PHP
Linux下快速搭建php开发环境
Mar 13 #PHP
php创建图像具体步骤
Mar 13 #PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 #PHP
You might like
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
php时区转换转换函数
2014/01/07 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
Python笔记(叁)继续学习
2012/10/24 Python
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
python实现京东秒杀功能
2018/07/30 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
pygame实现五子棋游戏
2019/10/29 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
python烟花效果的代码实例
2020/02/25 Python
迪奥官网:Dior.com
2018/12/04 全球购物
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
敬老文明号事迹材料
2014/01/16 职场文书
地理教师岗位职责
2014/03/16 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
教师师德工作总结2015
2015/07/22 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL