php做的购物车,php实现购物车功能

本文目录一览:

php购物车怎么实现

可以使用 session 或者 redis 来保存购物车信息。

具体代码这里不可能贴出来的。建议你下载一个开源的商城系统,看看别人是怎么写的。

PHP怎么做购物车?

购物车有两种实现方式,一种是保存在数据库,另外一种是session

保存在数据库的不会以为关闭浏览器而消失,session会因为关闭浏览器就没有了。

原理是把每个商品的信息存到一个数组里面,然后以这个商品的id作为键值,然后吧数组存到session里面就行,

如果是存入数据库的话,就用关联数据存一下就行的

php怎么用session做购物车

class cart

{

/**

* 函数名称: addItem

* 函数功能: 添加商品

* 输入参数: $data ————- 商品数组

* 函数返回值: none

* 其它说明: 因为数据是记录在session中,所以不用返回

*/

function addItem($data){

global $config_kezhi;

if(is_array($data)!empty($data)){

foreach($data as $key=$val){

// 如果商品存在就加数量和价格

if($this-_isExists($key)){

$_SESSION[‘cart’][$key][“paddy_count”] += $val[‘paddy_count’];

$_SESSION[‘cart’][$key][“market_count”] += $val[‘market_count’];

$_SESSION[‘cart’][$key][“goodsnum”] += intval($val[‘goodsnum’]);

$arr = $this-getItems($key);

// $_SESSION[‘cart’][$key][“count”] += $_SESSION[‘cart’][$key][“price”];

/* if(strlen($_SESSION[‘cart’][$key][“kezhi”])0){//没有刻字,加入刻字

$_SESSION[‘cart’][$key][“eng_price”]=0;

$_SESSION[‘cart’][$key][“eng_price”]=(int)$config_kezhi*intval($arr[‘num’]);

}else{

//die(“dd”);

$_SESSION[‘cart’][$key][“eng_price”]=0;

}*/

//echo $arr[‘num’];

//die();

}

// 否则直接加入

else

{

$_SESSION[‘cart’][$key] = $data[$key];

// $_SESSION[‘cart’][$key][“name”] = $val[‘name’];

// $_SESSION[‘cart’][$key][“price”] = $val[‘price’];

// $_SESSION[‘cart’][$key][“count”] = round($val[‘price’]*intval($val[‘num’]),2);

// $_SESSION[‘cart’][$key][“num”] = intval($val[‘num’]);

}

}

}

}

/**

* 函数名称: _isExists

* 函数功能: 判断此商品是否存在

* 输入参数: $id ———- 商品ID

* 函数返回值: bool

* 其他说明: 2004-8-19

*/

function _isExists($id)

{

if(isset($_SESSION[‘cart’][$id])!empty($_SESSION[‘cart’][$id])array_key_exists($id,$_SESSION[‘cart’]))

{

Return true;

}

else

{

Return false;

}

}

/**

* 函数名称: modItem

* 函数功能: 修改商品数量

* 输入参数: $id ————– 商品ID

* $num ————- 商品数量

* 函数返回值: 返回值说明

* 其他说明: 说明

*/

function modItem($id,$num)

{

$arr = $this-getItems($id);

// 如果商品存在就加数量和价格

if($this-_isExists($id))

{

$_SESSION[‘cart’][$id][“goodsnum”] = intval($num);

if($arr[‘paddy_price_special’] “0”){

$_SESSION[‘cart’][$id][“paddy_count”] = round($arr[‘paddy_price_special’]*intval($num),2);

}elseif($arr[‘paddy_userprice’] “0”){

$_SESSION[‘cart’][$id][“paddy_count”] = round($arr[‘paddy_userprice’]*intval($num),2);

}elseif($arr[‘paddy_spreadprice’] “0”){

$_SESSION[‘cart’][$id][“paddy_count”] = round($arr[‘paddy_spreadprice’]*intval($num),2);

}else{

$_SESSION[‘cart’][$id][“paddy_count”] = round($arr[‘paddy_price’]*intval($num),2);

}

$_SESSION[‘cart’][$id][“market_count”] = round($arr[‘market_price’]*intval($num),2);

}

}

/**

* 函数名称: modItem_wanwei

* 函数功能: 修改商品腕围

* 输入参数: $id ————– 商品ID

* $num ————- 商品腕围

* 函数返回值: 返回值说明

* 其他说明: 说明

*/

function modItem_wanwei($id,$wanwei)

{

$arr = $this-getItems($id);

// 如果商品存在就加数量和价格

if($this-_isExists($id))

{

$_SESSION[‘cart’][$id][“wanwei”] = intval($wanwei);

///$_SESSION[‘cart’][$id][“count”] = round($arr[‘price’]*intval($num),2);

}

}

// function modItem_kezhi($id,$kezhi)

// {

// global $config_kezhi;

// $arr = $this-getItems($id);

// // 如果商品存在就加数量和价格

// if($this-_isExists($id))

// {

// $_SESSION[‘cart’][$id][“kezhi”] = $kezhi;

// $_SESSION[‘cart’][$id][‘price’] = $arr[‘price’] + $config_kezhi;

// $_SESSION[‘cart’][$id][‘count’] = round($_SESSION[‘cart’][$id][‘price’]*intval($arr[‘num’]),2);

// }

// }

function modItem_kezhi($id,$kezhi,$kezhi1=””,$kezhi2=””)

{

global $config_kezhi;

$arr = $this-getItems($id);

// 如果商品存在就加数量和价格

//var_dump($_SESSION[‘cart’]);

// die();

if($this-_isExists($id))

{

if(strlen($_SESSION[‘cart’][$id][“kezhi”]) == 0 strlen($kezhi) != 0){//没有刻字,加入刻字

//$arr[‘price’] += $config_kezhi;

$_SESSION[‘cart’][$id][“eng_price”]=0;

$_SESSION[‘cart’][$id][“eng_price”]=(int)$config_kezhi*intval($arr[‘num’]);

//$_SESSION[‘cart’][$id][“price”] = $arr[‘price’];

// $_SESSION[‘cart’][$id][“count”] = round($arr[‘price’]*intval($arr[‘num’]),2);

$_SESSION[‘cart’][$id][“kezhi”] = $kezhi;

$_SESSION[‘cart’][$id][“kezhi1”] = $kezhi1;

$_SESSION[‘cart’][$id][“kezhi2”] = $kezhi2;

///$_SESSION[‘cart’][$id][“count”] = round($arr[‘price’]*intval($num),2);

}elseif(strlen($_SESSION[‘cart’][$id][“kezhi”]) != 0 strlen($kezhi) == 0){//有刻字,去除刻字

$_SESSION[‘cart’][$id][“eng_price”]=0;

//$_SESSION[‘cart’][$id][“eng_price”]-=(int)$config_kezhi*intval($arr[‘num’]);

// $_SESSION[‘cart’][$id][“eng_price”]-=$config_kezhi;

//$_SESSION[‘cart’][$id][“price”] = $arr[‘price’];

//$_SESSION[‘cart’][$id][“count”] = round($arr[‘price’]*intval($arr[‘num’]),2);

$_SESSION[‘cart’][$id][“kezhi”] = $kezhi;

$_SESSION[‘cart’][$id][“kezhi1”] = $kezhi1;

$_SESSION[‘cart’][$id][“kezhi2”] = $kezhi2;

}elseif(strlen($_SESSION[‘cart’][$id][“kezhi”]) != 0 strlen($kezhi) != 0){//有刻字,更改刻字

//$_SESSION[‘cart’][$id][“count”] = round($arr[‘price’]*intval($arr[‘num’]),2);

//$_SESSION[‘cart’][$id][“eng_price”]=0;

$_SESSION[‘cart’][$id][“eng_price”]=(int)$config_kezhi*intval($arr[‘num’]);

$_SESSION[‘cart’][$id][“kezhi”] = $kezhi;

$_SESSION[‘cart’][$id][“kezhi1”] = $kezhi1;

$_SESSION[‘cart’][$id][“kezhi2”] = $kezhi2;

}

}

}

/**

* 函数名称: getItems

* 函数功能: 取得商品数组

* 输入参数: $id ————— 某商品的ID

* 函数返回值: array

* 其它说明: 2004-8-19

*/

function getItems($id=null)

{

if(isset($_SESSION[‘cart’]))

{

if($id==null)

{

//print_r($_SESSION[‘cart’]);exit;

Return $_SESSION[‘cart’];

}

else

{

Return $_SESSION[‘cart’][$id];

}

}

}

/**

* 函数名称: emptyItem

* 函数功能: 删除商品

* 输入参数: $id ———– 商品ID

* 函数返回值: bool

* 其它说明: 2004-8-19

*/

function emptyItem($id=null)

{

if($id==null)

{

unset($_SESSION[‘cart’]);

}

else

{

unset($_SESSION[‘cart’][$id]);

}

}

/**

* 函数名称: sum

* 函数功能: 统计总价

* 输入参数: none

* 函数返回值: int

* 其它说明: 2004-8-19

*/

function sum()

{

$total = 0;

if(isset($_SESSION[‘cart’])!empty($_SESSION[‘cart’]))

{

foreach($_SESSION[‘cart’] as $key=$val)

{

$total += $val[‘count’];

}

}

Return $total;

}

}

我用PHP做的购物车,为什么每次往购物车中添加不同商品 ,购物车中确显示的同一件商品啊

这个需要看你的购物车结构。

一般一个属性的商品是在一条数据里面,多次加入只是更改数量

不同属性的商品应该分多条数据保存。最后购物车统计的是总的数量

原创文章,作者:GLUN,如若转载,请注明出处:https://www.506064.com/n/141647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
GLUNGLUN
上一篇 2024-10-08 17:53
下一篇 2024-10-08 17:53

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • Python购物车程序

    Python购物车程序是一款基于Python编程语言开发的程序,可以实现购物车的相关功能,包括商品的添加、购买、删除、统计等。 一、添加商品 添加商品是购物车程序的基础功能之一,用…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • Java和Python哪个功能更好

    对于Java和Python这两种编程语言,究竟哪一种更好?这个问题并没有一个简单的答案。下面我将从多个方面来对Java和Python进行比较,帮助读者了解它们的优势和劣势,以便选择…

    编程 2025-04-29
  • Python每次运行变量加一:实现计数器功能

    Python编程语言中,每次执行程序都需要定义变量,而在实际开发中常常需要对变量进行计数或者累加操作,这时就需要了解如何在Python中实现计数器功能。本文将从以下几个方面详细讲解…

    编程 2025-04-28
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • Python strip()函数的功能和用法用法介绍

    Python的strip()函数用于删除字符串开头和结尾的空格,包括\n、\t等字符。本篇文章将从用法、功能以及与其他函数的比较等多个方面对strip()函数进行详细讲解。 一、基…

    编程 2025-04-28
  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • 全能的wpitl实现各种功能的代码示例

    wpitl是一款强大、灵活、易于使用的编程工具,可以实现各种功能。下面将从多个方面对wpitl进行详细的阐述,每个方面都会列举2~3个代码示例。 一、文件操作 1、读取文件 fil…

    编程 2025-04-27
  • PHP登录页面代码实现

    本文将从多个方面详细阐述如何使用PHP编写一个简单的登录页面。 1. PHP登录页面基本架构 在PHP登录页面中,需要包含HTML表单,用户在表单中输入账号密码等信息,提交表单后服…

    编程 2025-04-27

发表回复

登录后才能评论