php实现购物车功能(以大苹果购物网为例)


Posted in PHP onMarch 09, 2017

首先是几个简单的登录页面

<body>
<form action="chuli.php" method="post">
 <div style="margin-left: 500px; margin-top: 200px;
  height: 250px; width: 250px; border: 1px dashed black">
  <div style="margin-left: 100px; "><h3>登录</h3></div>
  <div style="margin-top: 20px">用户名:<input type="text" name="uid"/></div><br/>
  <div>密 码:<input type="password" name="pwd"/></div><br/>
  <div style="margin-left: 180px"><input type="submit" value="登录"/></div>
 </div>
</form>
</body>

登录页面写好之后,需要进入处理页面,从数据库中调出用户名和密码:

<?php
session_start(); //开启session 必须要写到第一行
header("Content-type:text/html;charset=utf-8");
$uid=$_POST["uid"]; //从登录页面获取到用户名和密码
$pwd=$_POST["pwd"];
include("DADB.class.php");
$db=new DADB();
$sql="select password from login where username='{$uid}'";
$arr=$db->Query($sql);
if($arr[0][0]==$pwd && !empty($pwd)) //判断所填写的密码和取到的密码是一样的,而且密码不能为空
{
 $_SESSION["uid"]=$uid;
 header("location:main.php");
}
else
{
 echo"登录失败";
}

这个显示的是登录页面

php实现购物车功能(以大苹果购物网为例)

下面要进入主页面了,从数据库中把所有的水果信息调出来,然后我们再来实现加入购物车这一项功能

<h2>大苹果购物网</h2>
<?php
session_start();
include("DADB.class.php");
$db=new DADB();
?>
<table border="1" width="100%" cellpadding="0" cellspacing="0">
 <tr>
  <td>代号</td>
  <td>水果名称</td>
  <td>水果价格</td>
  <td>原产地</td>
  <td>货架</td>
  <td>库存量</td>
  <td></td>
 </tr>
 <?php
 $uid=$_SESSION["uid"];
 $sql="select * from fruit";
 $arr=$db->Query($sql);
 foreach($arr as $v)
 {
  echo"<tr>
  <td>{$v[0]}</td> // 从数据库调出我们所需要的内容
  <td>{$v[1]}</td>
  <td>{$v[2]}</td>
  <td>{$v[3]}</td>
  <td>{$v[4]}</td>
  <td>{$v[5]}</td>
  <td><a href='add.php?ids={$v[0]}'>购买</a></td> //这里的购买相当于添加购物车的功能
 </tr>";
 }
 ?>
 <?php
 //这里显示的是 购物车有多少产品,和产品的总价格
 $ann=array();
 if(!empty($_SESSION["gwc"]))
 {
  $ann=$_SESSION["gwc"];
 }
 $zhonglei = count($ann);
 $sum=0;
 foreach($ann as $k)
 {
  $sql1="select price from fruit where ids='{$v[0]}'";
  $danjia=$db->Query($sql1);
  foreach($danjia as $n)
  {
   $sum=$sum + $n[0]*$k[1];
  }
 }
 echo"购物车有<mark>{$zhonglei}</mark>种商品,总价格为<mark>{$sum}</mark>元";
 ?>
</table>
<div>
<a href="gouwuche.php" rel="external nofollow" rel="external nofollow" >查看购物车</a>
<a href="main.php" rel="external nofollow" rel="external nofollow" >浏览商品</a>
<a href="zhanghu.php" rel="external nofollow" rel="external nofollow" >查看账户</a> </div>
</body>

主页面显示图

php实现购物车功能(以大苹果购物网为例)

接下来是添加购物车页面

<?php
session_start();
$ids = $_GET["ids"];
if(empty($_SESSION["gwc"]))
{
  //1.购物车是空的,第一次点击添加购物车
  $arr = array(
    array($ids,1)
  );
  $_SESSION["gwc"]=$arr;
}
else
{
  //不是第一次点击
  //判断购物车中是否存在该商品
  $arr = $_SESSION["gwc"]; //先存一下
  $chuxian = false;
  foreach($arr as $v)
  {
    if($v[0]==$ids)
    {
      $chuxian = true;
    }
  }
  if($chuxian)
  {
    //3.如果购物车中有该商品
    for($i=0;$i<count($arr);$i++)
    {
      if($arr[$i][0]==$ids)
      {
        $arr[$i][1]+=1;
      }
    }
    $_SESSION["gwc"] = $arr;
  }
  else
  {
    //2.如果购物车中没有该商品
    $asg = array($ids,1);
    $arr[] = $asg;
    $_SESSION["gwc"] = $arr;
  }
}
header("location:gouwuche.php");

然后先是购物车主界面,如下

<h2>购物车中有以下商品:</h2>
<table cellpadding="0" cellspacing="0" border="1" width="100%">
  <tr>
    <td>商品名称</td>
    <td>商品单价</td>
    <td>购买数量</td>
    <td></td>
  </tr>
 <?php
  session_start();
  //$uid=$_SESSION["uid"];
  $arr=array();
  if(!empty($_SESSION["gwc"]))
  {
    $arr=$_SESSION["gwc"];
  }
  include("DADB.class.php");
  $db=new DADB();
  foreach($arr as $v)
  {
    global $db;
    $sql="select * from fruit where ids='{$v[0]}'";
    $att=$db -> Query($sql,1);
    foreach($att as $n)
    {
      echo"<tr>
    <td>{$n[1]}</td>
    <td>{$n[2]}</td>
    <td>{$v[1]}</td>
    <td>
<a href='shanchu.php?sy={$k}'>删除</a></td>
</tr>";} } ?> </table> <div> <a href="gouwuche.php" rel="external nofollow" rel="external nofollow" >查看购物车</a> <a href="main.php" rel="external nofollow" rel="external nofollow" >浏览商品</a> <a href="zhanghu.php" rel="external nofollow" rel="external nofollow" >查看账户</a> </div> 14 15 </body>

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");

至于提交页面,我们要想到余额,库存等因素,所以比较繁琐,

不i怕,上代码。

<?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实现购物车功能(以大苹果购物网为例)

php实现购物车功能(以大苹果购物网为例)

php实现购物车功能(以大苹果购物网为例)

php实现购物车功能(以大苹果购物网为例)

实现功能是没问题的

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
小偷PHP+Html+缓存
Nov 25 PHP
PHP 远程关机实现代码
Nov 10 PHP
PHP XML数据解析代码
May 26 PHP
PHP写杨辉三角实例代码
Jul 17 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
PHP大转盘中奖概率算法实例
Oct 21 PHP
非常重要的php正则表达式详解
Jan 04 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
PHP中检查isset()和!empty()函数的必要性
Feb 13 PHP
PHP 对象继承原理与简单用法示例
Apr 21 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
Mar 09 #PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
Mar 08 #PHP
php 截取GBK文档某个位置开始的n个字符方法
Mar 08 #PHP
php封装json通信接口详解及实例
Mar 07 #PHP
PHP获取真实客户端的真实IP
Mar 07 #PHP
php实现简单加入购物车功能
Mar 07 #PHP
mac os快速切换多个PHP版本的方法
Mar 07 #PHP
You might like
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
php检测文件编码的方法示例
2014/04/25 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
地震发生中逃生十大法则
2008/05/12 Javascript
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
javascript 判断当前浏览器版本并判断ie版本
2017/02/17 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
pandas ix &amp;iloc &amp;loc的区别
2019/01/10 Python
Python绘制热力图示例
2019/09/27 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
Pytorch 实现权重初始化
2019/12/31 Python
python爬虫基础知识点整理
2020/06/02 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
纯CSS3打造属于自己的“小黄人”
2016/03/14 HTML / CSS
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
项目考察欢迎辞
2014/01/17 职场文书
小学课改工作总结
2015/08/13 职场文书