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 获取SWF动画截图示例代码
Feb 10 PHP
php 不使用js实现页面跳转
Feb 11 PHP
微信公众平台接口开发入门示例
Dec 24 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
PHP实现的一致性哈希算法完整实例
Nov 14 PHP
smarty学习笔记之常见代码段用法总结
Mar 19 PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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中的观察者模式
2010/03/24 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
javascript 闭包详解
2015/07/02 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
vue二级路由设置方法
2018/02/09 Javascript
JS脚本加载后执行相应回调函数的操作方法
2018/02/28 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
Python中的self用法详解
2019/08/06 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
python线程的几种创建方式详解
2019/08/29 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
周鸿祎:教你写创业计划书
2013/12/30 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
Golang ort 中的sortInts 方法
2022/04/24 Golang
python中filter,map,reduce的作用
2022/06/10 Python
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android