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 相关文章推荐
PHP 文章中的远程图片采集到本地的代码
Jul 30 PHP
php实现jQuery扩展函数
Oct 30 PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 PHP
destoon之一键登录设置
Jun 21 PHP
PHP 使用memcached简单示例分享
Mar 05 PHP
PHP中的命名空间详细介绍
Jul 02 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 PHP
php+ajax实现仿百度查询下拉内容功能示例
Oct 20 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
PHP面向对象程序设计继承用法简单示例
Dec 28 PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
jquery 图片缩放拖动的简单实例
2014/01/08 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
Python控制Firefox方法总结
2019/06/03 Python
python list多级排序知识点总结
2019/10/23 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
python异步Web框架sanic的实现
2020/04/27 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
介绍一下SQL Server的全文索引
2013/08/15 面试题
什么是规则表达式
2012/05/03 面试题
办公室秘书自我鉴定
2014/01/18 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
严以用权学习心得体会
2016/01/12 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server