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中文汉字验证码
Apr 08 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
PHP学习散记_编码(json_encode 中文不显示)
Nov 10 PHP
php的hash算法介绍
Feb 13 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
php分页函数完整实例代码
Sep 22 PHP
ThinkPHP 3.2 版本升级了哪些内容
Mar 05 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
使用PHPWord生成word文档的方法详解
Jun 06 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
第七节--类的静态成员
2006/11/16 PHP
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
php打开文件fopen函数的使用说明
2013/07/05 PHP
PHP页面中文乱码分析
2013/10/29 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
原生JS实现轮播图效果
2018/10/12 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
在Django框架中设置语言偏好的教程
2015/07/27 Python
Python编程给numpy矩阵添加一列方法示例
2017/12/04 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
教师申诉制度
2014/01/29 职场文书
军训教官感言
2014/03/02 职场文书
春节联欢会主持词
2014/03/24 职场文书
师范生免费教育协议书范本
2014/10/09 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS