php实现产品加入购物车功能(1)


Posted in PHP onJuly 23, 2020

今天在练习购物车以及提交订单,写的有点头晕,顺便也整理一下,这个购物车相对来说比较简单,用于短暂存储,并没有存储到数据库,购物车对于爱网购的人来说简直是熟悉的不能再熟悉了,在写购物车之前,我们首先要构思一下,我们需要先从数据库中调出一张表格,这里我用的是fruit表,其次是登录表,我用的是login表,用来调用户名和密码的,所有的都准备好之后就要考虑放入购物车是会有三种情况的:

第一种情况:购物车里面什么都没有

第二种情况:购物车里面已经有此产品了,再次加入 这种情况下考虑到的是 数量要+1

第三种情况:购物车里面有产品了,但是没有此产品

下图是用到的数据库表格:

php实现产品加入购物车功能(1)php实现产品加入购物车功能(1)

下面是登录页面的代码:

<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实现产品加入购物车功能(1)

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

<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实现产品加入购物车功能(1)

最重要的就是添加购物车页面了

<?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?ids={$v[0]}'>删除</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实现产品加入购物车功能(1)

这只是比较简单的加入购物车,但是中间还有很多环节没有完善好,比如说加入购物车后,数据库中的产品数量减少、购物车中产品的删除等操作还没有做,后续补上。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
通用PHP动态生成静态HTML网页的代码
Mar 04 PHP
php 常用类汇总 推荐收藏
May 13 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
PHP实现货币换算的方法
Nov 29 PHP
分享下php5类中三种数据类型的区别
Jan 26 PHP
PHP进程同步代码实例
Feb 12 PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
PHP基于DOM创建xml文档的方法示例
Feb 08 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
php 实现银联商务H5支付的示例代码
Oct 12 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
PHP计算近1年的所有月份
Mar 13 #PHP
You might like
php图片验证码代码
2008/03/27 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
关于document.cookie的使用javascript
2008/04/11 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
Python fileinput模块使用实例
2015/06/03 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
2018/05/25 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
python实现快递价格查询系统
2020/03/03 Python
Python 如何在字符串中插入变量
2020/08/01 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
2014年商场国庆节活动策划方案
2014/09/16 职场文书
房产分割协议书范文
2014/11/21 职场文书
保研导师推荐信
2015/03/25 职场文书
毕业实习单位意见
2015/06/04 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python