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 相关文章推荐
VFP与其他应用程序的集成
Oct 09 PHP
PHP 截取字符串专题集合
Aug 19 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
JavaScript创建命名空间的5种写法
Jun 24 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
PHP函数引用返回的实例详解
Sep 11 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 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
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
phpstorm编辑器乱码问题解决
2014/12/01 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
python实现绘制树枝简单示例
2014/07/24 Python
python使用Berkeley DB数据库实例
2014/09/26 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
轻松实现python搭建微信公众平台
2016/02/16 Python
Python3计算三角形的面积代码
2017/12/18 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python打开windows应用程序的实例
2019/06/28 Python
使用Django清空数据库并重新生成
2020/04/03 Python
python计算auc的方法
2020/09/09 Python
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
暑期实习鉴定
2013/12/16 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
班级文化建设标语
2014/06/23 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
2015年科协工作总结
2015/05/19 职场文书
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL