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 相关文章推荐
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
PHP采集类Snoopy抓取图片实例
Jun 19 PHP
Sublime里直接运行PHP配置方法
Nov 28 PHP
用php来限制每个ip每天浏览页面数量的实现思路
Feb 24 PHP
php计算两个日期相差天数的方法
Mar 14 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
PHP 7.0.2 正式版发布
Jan 08 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
一个简单的php MVC留言本实例代码(必看篇)
Sep 22 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
Mar 25 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作的文本留言本的例子(五)
2006/10/09 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
python的Template使用指南
2014/09/11 Python
python中list循环语句用法实例
2014/11/10 Python
Python中的ctime()方法使用教程
2015/05/22 Python
bpython 功能强大的Python shell
2016/02/16 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
Ibatis如何调用存储过程
2015/05/15 面试题
求职简历自荐信范文
2013/10/21 职场文书
电子商务专业求职信
2014/03/08 职场文书
委托书模板
2014/04/04 职场文书
体育口号大全
2014/06/18 职场文书
协会周年庆活动方案
2014/08/26 职场文书
组工干部演讲稿
2014/09/02 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
小学主题班会教案
2015/08/17 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python