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 相关文章推荐
一个目录遍历函数
Oct 09 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
Feb 19 PHP
php实现查询百度google收录情况(示例代码)
Aug 02 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
php中上传文件的的解决方案
Sep 25 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 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
phpmyadmin操作流程
2006/10/09 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
Jquery 的扩展方法总结
2011/10/01 Javascript
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
python中reduce()函数的使用方法示例
2017/09/29 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
python入门之井字棋小游戏
2020/03/05 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
单位办理社保介绍信
2014/01/10 职场文书
护理专业毕业生自荐信
2014/06/15 职场文书
思想作风建设心得体会
2014/10/22 职场文书
房屋产权证明书
2015/06/19 职场文书
Java实现聊天机器人完善版
2021/07/04 Java/Android