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 相关文章推荐
windows环境下php配置memcache的具体操作步骤
Jun 09 PHP
将二维数组转为一维数组的2种方法
May 26 PHP
php实现文件下载代码分享
Aug 19 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
Dec 02 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 PHP
PHP内存溢出优化代码详解
Feb 26 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 expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
js DOM的学习笔记
2011/12/22 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
vue-router 2.0 跳转之router.push()用法说明
2020/08/12 Javascript
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
python 星号(*)的多种用途
2020/09/21 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
如何提高JDBC的性能
2013/04/30 面试题
遥感技术与仪器求职信
2014/02/22 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
国际贸易系求职信
2014/08/09 职场文书
大学生实习推荐信
2015/03/27 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
pytorch MSELoss计算平均的实现方法
2021/05/12 Python
用Python爬取某乎手机APP数据
2021/06/15 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript