php实现简单加入购物车功能


Posted in PHP onMarch 07, 2017

今天在练习购物车以及提交订单,写的有点头晕,顺便也整理一下,这个购物车相对来说比较简单,用于短暂存储,并没有存储到数据库,

购物车对于爱网购的人来说简直是熟悉的不能再熟悉了,在写购物车之前,我们首先要构思一下,我们需要先从数据库中调出一张表格,这里

我用的是fruit表,其次是登录表,我用的是login表,用来调用户名和密码的,所有的都准备好之后就要考虑放入购物车是会有三种情况的:

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

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

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

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

php实现简单加入购物车功能

php实现简单加入购物车功能

下面是登录页面的代码:

<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?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实现简单加入购物车功能

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

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

PHP 相关文章推荐
smtp邮件发送一例
Oct 09 PHP
用PHP中的 == 运算符进行字符串比较
Nov 26 PHP
支持php4、php5的mysql数据库操作类
Jan 10 PHP
PHP中英混合字符串截取函数代码
Jul 17 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
完美解决thinkphp验证码出错无法显示的方法
Dec 09 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
Apr 02 PHP
php while循环控制的简单实例
May 30 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
CI框架实现框架前后端分离的方法详解
Dec 30 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
mac os快速切换多个PHP版本的方法
Mar 07 #PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
Mar 06 #PHP
PHP实现添加购物车功能
Mar 06 #PHP
PHP自动补全表单的两种方法
Mar 06 #PHP
PHP中for循环与foreach的区别
Mar 06 #PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 #PHP
php实现留言板功能
Mar 05 #PHP
You might like
php生成随机数或者字符串的代码
2008/09/05 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
javascript add event remove event
2008/04/07 Javascript
img标签中onerror用法
2009/08/13 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
vue表单自定义校验规则介绍
2018/08/28 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
Python原始套接字编程实例解析
2020/01/29 Python
python中yield的用法详解
2021/01/13 Python
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
工厂保洁员岗位职责
2013/12/04 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
Python sklearn分类决策树方法详解
2022/09/23 Python