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采集速度探究总结(原创)
Apr 18 PHP
过滤掉PHP数组中的重复值的实现代码
Jul 17 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
ThinkPHP模板输出display用法分析
Nov 26 PHP
PHP实现的限制IP投票程序IP来源分析
May 04 PHP
PHP登录(ajax提交数据和后台校验)实例分享
Dec 29 PHP
PHP微信模板消息操作示例
Jun 29 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 PHP
php屏蔽错误及提示的方法
May 10 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
mysql limit查询优化分析
2008/11/12 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
PHP生成条形图的方法
2014/12/10 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
表单内同名元素的控制
2006/11/22 Javascript
关于图片验证码设计的思考
2007/01/29 Javascript
js 异步处理进度条
2010/04/01 Javascript
javascript forEach通用循环遍历方法
2010/10/11 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
python实现图片处理和特征提取详解
2017/11/13 Python
python实现求两个字符串的最长公共子串方法
2018/07/20 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
门卫岗位职责
2013/11/15 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers
部分武汉产收音机展览
2022/04/07 无线电