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 高效率写法 推荐
Feb 21 PHP
PHP 命名空间实例说明
Jan 27 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
PHP中单引号与双引号的区别分析
Aug 19 PHP
php实现概率性随机抽奖代码
Jan 02 PHP
PHP浮点比较大小的方法
Feb 14 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 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
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
PHP性能测试工具xhprof安装与使用方法详解
2018/04/29 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python中lambda与def用法对比实例分析
2015/04/30 Python
以windows service方式运行Python程序的方法
2015/06/03 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
致标枪运动员广播稿
2014/02/06 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
网吧温馨提示
2015/07/17 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android