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 相关文章推荐
编写自己的php扩展函数
Oct 09 PHP
模拟OICQ的实现思路和核心程序(二)
Oct 09 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
php数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
PHP 观察者模式的实现代码
May 10 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
Jun 29 PHP
使用php计算排列组合的方法
Nov 13 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
Mar 17 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
使用PHPExcel导出Excel表
Sep 08 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蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
JS闭包原理与应用经典示例
2018/12/20 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
初步理解Python进程的信号通讯
2015/04/09 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
Python中一般处理中文的几种方法
2019/03/06 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
物理专业大学生职业生涯规划书
2014/02/07 职场文书
应届生求职信
2014/05/31 职场文书
蓬莱阁导游词
2015/02/04 职场文书