php购物车代码
❶ php怎么用session做购物车
class cart
{
    /**
    *   函数名称:   addItem
    *   函数功能:   添加商品
    *   输入参数:   $data ------------- 商品数组
    *   函数返回值: none
    *   其它说明:   因为数据是记录在session中,所以不用返回
    */
    function addItem($data){
     global $config_ke;
        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]["ke"])>0){//没有刻字,加入刻字
      $_SESSION['cart'][$key]["eng_price"]=0;
      $_SESSION['cart'][$key]["eng_price"]=(int)$config_ke*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_ke($id,$ke)
//    {
//        global $config_ke;
//  $arr = $this->getItems($id);
//        // 如果商品存在就加数量和价格
//        if($this->_isExists($id))
//        {
//   $_SESSION['cart'][$id]["ke"]   = $ke;
//            $_SESSION['cart'][$id]['price'] = $arr['price'] + $config_ke; 
//   $_SESSION['cart'][$id]['count'] = round($_SESSION['cart'][$id]['price']*intval($arr['num']),2);
//        }
//    }
function modItem_ke($id,$ke,$ke1="",$ke2="")
    {
        global $config_ke;
  $arr = $this->getItems($id);
        // 如果商品存在就加数量和价格
  //var_mp($_SESSION['cart']);
  // die();
        if($this->_isExists($id))
        {
   if(strlen($_SESSION['cart'][$id]["ke"]) == 0 && strlen($ke) != 0){//没有刻字,加入刻字
    //$arr['price'] += $config_ke;
    $_SESSION['cart'][$id]["eng_price"]=0;
    $_SESSION['cart'][$id]["eng_price"]=(int)$config_ke*intval($arr['num']);
   //$_SESSION['cart'][$id]["price"] = $arr['price'];
   // $_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);   
    $_SESSION['cart'][$id]["ke"] = $ke;
    $_SESSION['cart'][$id]["ke1"] = $ke1;
    $_SESSION['cart'][$id]["ke2"] = $ke2; 
    ///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
   }elseif(strlen($_SESSION['cart'][$id]["ke"]) != 0 && strlen($ke) == 0){//有刻字,去除刻字 
    $_SESSION['cart'][$id]["eng_price"]=0;
    //$_SESSION['cart'][$id]["eng_price"]-=(int)$config_ke*intval($arr['num']);   
   // $_SESSION['cart'][$id]["eng_price"]-=$config_ke;
    //$_SESSION['cart'][$id]["price"] = $arr['price'];
    //$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
    $_SESSION['cart'][$id]["ke"] = $ke;
    $_SESSION['cart'][$id]["ke1"] = $ke1;
    $_SESSION['cart'][$id]["ke2"] = $ke2; 
   }elseif(strlen($_SESSION['cart'][$id]["ke"]) != 0 && strlen($ke) != 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_ke*intval($arr['num']); 
    
    $_SESSION['cart'][$id]["ke"] = $ke;
    $_SESSION['cart'][$id]["ke1"] = $ke1;
    $_SESSION['cart'][$id]["ke2"] = $ke2; 
   }
        }
    }
    /**
    *   函数名称:   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代码怎么写
你可以去网络搜下购物车功能,就有需求文档和代码了,你就直接复制下来拿来跑一边就会了。
希望我的回答可以帮到你,有什么不懂可以追问。
❸ php购物车添加和减少数量以及计算总金额
增减里面的get的是 BID  ,你传值用的是 id ,所以session里面获取不到$I_ID的值 ,默认变成空字符串,所以你后面的增减操作都是对中间那个没有id的进行操作 . 
总量遍历数组,把单价和数量相乘 然后相加 .
❹ 跪求一份PHP购物车的源码 只要求不到 我就一直等 等到天荒等到地老
源码我这里没有。而且找出来的源码也未必适合你。
给你说一下购物车的思路吧,希望对你有帮助
1.现在互联网的购物车.一般都采用cookie来做的.
a.用户点击"加入购物车",把当前物品id,按照某种形式,写入cookie.
b.代码思路.$_COOKIE['car']可以理解为就是购物车.里面是物品id;
$car = $_COOKIE['car']; //先读取购物车
$car = $car ? explode(',',$car)  : array(); //如果购物车有物品,则把物品转化成数组,如果没有则默认成空数组;
$car[] = $goods_id;  //往购物车中增加该物品;
$car = implode(','.$car); //把购物车中的所有物品id,转化成字符串。这便于存贮在cookie中,直接存数组也可以。但是如果你需要把整个购物车信息加密的话,那就应该只有字符串了。
setcookie('car',$car,time()+3600); //购物车存1个小时,这个时间可以设置的长一点;
2.也可以通过数据库来实现;但前提是必须要用户登陆才可以。
table_car
uid
goods_id
datetime
1.每次用户点击“加入购物车”,往数据库中写入,该条信息就好了。
这种情况需要注意,在一定的时间段外,需要清空之前的信息。所以这里设置了datetime;
这个只是简单的购物车原理。里面还有一些其他细节。
1.比如说物品的数量。
2.cookie信息的加密和解密.
..........
3.才用数据库方式,需要清空哪些购物数据
❺ 【高分】急求用php写的购物车代码!!!!!(十万火急)如果您提供的好用还有加分!!!
我也要弄一个这种购物车,
我去写个,贴出来,【嘿嘿,今天上午新写的】。
我懒得新建数据库,用的是我的数据库。
你按照我的改一下就能用了
本人水平有限,高手请指正。
你,大,爷的,虽然不咋地,保证能用
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
经过调试,
//$my->add_cart(45,3,"茶几系列");//新增购物
//$my->updata_cart(13,13,8);     //更新购物
//$my->del_cart(12,5,'Guest');   //删除一种购物
//$my->empty_cart('Guest');      //清空购物车
$ok=$my->get_cart('Guest');      //返回购物车
这些都可用
-------------------------------------------------------------------
<?php
class Cart 
{
  public $totalCost=0;    //商品总金额 
  
   function cart($host,$usr,$pwd,$db)
   {
     mysql_connect($host,$usr,$pwd) or die(mysql_error);
  mysql_select_db($db) or die(mysql_error);
  mysql_query("SET Names GBk");   
 //只要有人访问,就自动清除一天前所有没付款的订单;
    $sql="delete FROM shopcart WHERE TO_DAYS( NOW( )) - TO_DAYS( ptime ) >=1 and payment=0"; 
 mysql_query($sql);
   }
// 弹出提示
function alter($Str,$Url) 
 {
  echo "<Script language='javaScript'> alert('".$Str."');</Script>";
  echo "<meta http-equiv=refresh content=0;URL=".$Url.">";
 }
//增加购物;三个参数:pid:产品ID,ptl:产品数量,pcid:产品类别
//查询数据库,是否存在此人在本日内订过本产品
//如果订过,那么数量累加,否则插入一个数据库行
function add_cart($pid,$ptl=1,$pcid)
{ 
     if($ptl>=100 || $ptl<=0)
  {
     $this->alter("最多买99件,最少1件","index.php");
     die();
  }
     
  if(!$_SESSION['usr']) { $usr='Guest';}
  else    { $usr=$_SESSION['usr'];}
  
  $sql="select * from shopcart where pid='".$pid."' and usr='".$usr."' and pcid='".$pcid."'";
     $ex=mysql_query($sql);  
  $ex1=mysql_fetch_array($ex);
if(!$ex1) 
 { 
  $sql="select * from proct where ID='".$pid."' and class1='".$pcid."'";
  $ok=mysql_query($sql);
  $rs=mysql_fetch_array($ok); 
  
  if($rs)
    {
  $totalCost= $rs['Price'] * $ptl;  
  
  $sql="insert into shopcart(usr,pid,pname,ptl,price,pcid,psum,payment) Values(";
  $sql.="'".$usr."',";
  $sql.="'".$rs['ID']."',";
  $sql.="'".$rs['Name']."',";
  $sql.="'".$ptl."',";
  $sql.="'".$rs['Price']."',";
  $sql.="'".$rs['Class1']."',";  
  $sql.="'".$totalCost."',"; 
  $sql.="'0')"; 
  mysql_query($sql) or die(mysql_error());
  if($ok) {   $this->alter("购物成功","index.php"); }
  else    {   $this->alter("购物失败","index.php"); }
  
 }
  else
    {
  $this->alter("不存在的商品,或者参数错误","index.php");
  die();
  }
    }
   else
   {
      $sql="update shopcart set ptl= ptl+1,psum = psum+price where ID='".$ex1['ID']."'";
   mysql_query($sql);
   $this->alter("更新数量成功","index.php");
   }   
  } 
 
 //更新购物车的单个产品的数量;
function updata_cart($cid,$ptl,$pid)
{
  if($ptl>=100||$ptl<=0)
   {
       $this->alter('产品数量不对!','index.php');
       die();
   }
  $sql="select * from shopcart where ID='".$cid."' and pid='".$pid."'";
  $ok=mysql_query($sql);
  if(!ok) { alter("参数发生错误","index.php");}
  else
  {
     $sql="update shopcart set ptl='".$ptl."',psum=price * '".$ptl."' where ID='".$cid."' and pid='".$pid."'";
 $ok=mysql_query($sql);
 if(!ok) { $this->alter("更新失败","index.php");}
 else    { $this->alter("更新成功","index.php");}
  }
}
function del_cart($cid,$pid,$usr)
{
   $sql="delete from shopcart where usr='".$usr."' and ID='".$cid."' and pid='".$pid."'"; 
   $ok=mysql_query($sql);
   if(!$ok)  {$this->alter("删除失败","index.php");}
   else      {$this->alter("删除成功","index.php");}
} 
function empty_cart($usr)
{
  $sql="delete from shopcart where usr='".$usr."'";
  mysql_query($sql) or die(mysql_error);
}
function get_cart($usr)
{
 $sql="select * from shopcart where usr='".$usr."'";
 $ok=mysql_query($sql);
 return $ok;
}
}
$my = new Cart("localhost","root","root","mybbs");
//$my->add_cart(45,3,"茶几系列");
//$my->updata_cart(13,13,8); 
//$my->del_cart(12,5,'Guest');
//$my->empty_cart('Guest');
$ok=$my->get_cart('Admin');
echo "usr  pid  pname  ptl  price  pcid  psum  payment  ptime  <br><hr><br>";
while($rs=mysql_fetch_array($ok))
{
  echo $rs[1]."->".$rs[2]."->".$rs[3]."->".$rs[4]."->".$rs[5]."->".$rs[6]."->".$rs[7]."->".$rs[8]."->".$rs[9]."<br>";
}
?>
、、、、、、、、、、、、、、、、、SQL、、、、、、、、、、、、、、
CREATE TABLE IF NOT EXISTS `shopcart` (
  `ID` int(10) NOT NULL auto_increment,
  `usr` varchar(50) NOT NULL,
  `pid` int(5) NOT NULL,
  `pname` varchar(100) NOT NULL,
  `ptl` int(3) NOT NULL,
  `price` decimal(50,2) NOT NULL default '0.00',
  `pcid` varchar(100) NOT NULL,
  `psum` decimal(50,2) NOT NULL default '0.00',
  `payment` tinyint(1) NOT NULL,
  `ptime` timestamp NOT NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`ID`)
)
proct 里面用的ID CLASS1是
  `ID` int(6) NOT NULL auto_increment,
  `Class1` varchar(20) NOT NULL,
  `Price` int(6) NOT NULL,
❻ 如何用html css javascript php制作购物车
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="---.css">
<script src="---.js"></script>
</head>
<body>
<div class="container">
<div class="shop">
<div class="header">
<input type="checkbox" class="shop-checkbox">
<span class="shop-icon"></span>
<span class="shop-name">---</span>
<span class="wangwang-icon"></span>
</div>
<div class="items">
<div class="item">
<div><input class="item-checkbox" type="checkbox" name="" id=""></div>
<div>
<span class="item-img"></span>
</div>
<div class="item-name">
<div>----</div>
<div class="promotion-icons"><span></span><span></span><span></span></div>
</div>
<div class="sku">---</div>
<div class="price">
<div class="price-1">---</div>
<div class="price-2" data-price="---">----</div>
</div>
<div class="num-control">
<span class="num-minus">-</span>
<input class="num" type="text" value="1">
<span class="num-plus">+</span>
</div>
<div class="item-price-total">
<span>¥50.13</span>
</div>
<div class="operation">
<div>---</div>
<div>---</div>
</div>
</div>
</div>
</div>
<div class="shop">
<div class="header">
<input type="checkbox" class="shop-checkbox">
<span class="shop-icon"></span>
<span class="shop-name">---</span>
<span class="wangwang-icon"></span>
</div>
<div class="items">
<div class="item">
<div><input class="item-checkbox" type="checkbox" name="" id=""></div>
<div>
<span class="item-img"></span>
</div>
<div class="item-name">
<div>----</div>
<div class="promotion-icons"><span></span><span></span><span></span></div>
</div>
<div class="sku">---</div>
<div class="price">
<div class="price-1">---</div>
<div class="price-2" data-price="---">---</div>
</div>
<div class="num-control">
<span class="num-minus">-</span>
<input class="num" type="text" value="1">
<span class="num-plus">+</span>
</div>
<div class="item-price-total">
<span>¥9.90</span>
</div>
<div class="operation">
<div>移入收藏夹</div>
<div>删除</div>
</div>
</div>
<div class="item">
<div><input class="item-checkbox" type="checkbox" name="" id=""></div>
<div>
<span class="item-img"></span>
</div>
<div class="item-name">
<div>---</div>
<div class="promotion-icons"><span></span><span></span><span></span></div>
</div>
<div class="sku">---</div>
<div class="price">
<div class="price-1">---</div>
<div class="price-2" data-price="---">---</div>
</div>
<div class="num-control">
<span class="num-minus">-</span>
<input class="num" type="text" value="1">
<span class="num-plus">+</span>
</div>
<div class="item-price-total">
<span>¥19.9</span>
</div>
<div class="operation">
<div>移入收藏夹</div>
<div>删除</div>
</div>
</div>
</div>
</body>
</html>
.container{
width: 1000px;
margin-left: auto;
margin-right: auto;
color: #444444;
}
.header{
margin: 8px;
}
.shop-icon, .wangwang-icon, .promotion-icons span{
display:inline-block;
width: 15px;
height: 15px;
background-color: rgb(117,192,241);
}
.promotion-icons span{
margin-right: 4px;
}
.items{
border: 1px solid #ebe9e9;
}
.item{
display: flex;
margin: 8px;
}
.item-img{
width:100px;
height: 100px;
display: inline-block;
background-color: aquamarine;
margin-left: 6px;
margin-right: 6px;
}
.item-name
{
display: flex;
flex-direction: column;
justify-content: space-between;
}
.sku, .price,.item-price-total,.operation,.num-control{
margin-left: 18px;
}
.num{
width: 18px;
height: 15px;
}
.num-control{
display: flex;
align-items: baseline;
}
.num-minus,.num-plus{
width: 18px;
height: 22px;
display: inline-block;
background-color: #ebe9e9;
}
.checkout{
display: flex;
justify-content: space-between;
}
.shop{
margin-bottom: 20px;
margin-top: 30px;
}
.goods,.freight,.checkout-button{
margin-left: 15px;
}
.price-1{
text-decoration: line-through;
color: gray;
}
.check-num ,.total-price{
font-size: large;
color: red;
margin-left: 3px;
margin-right: 3px;
}
.checkout-button{
height: 30px;
width: 50px;
background-color: beige;
}
.checkout{
margin-top: 15px;
}
.item-name{
width: 25%;
}
.item-price-total{
width: 5%;
}
.sku{
width: 20%;
}
function updatePrice(){
let items = document.querySelectorAll('.item');
let totalNum = 0;
let totalPrice = 0;
items.forEach(function(item){
if(item.querySelector('.item-checkbox').checked){
let num = item.querySelector('.num').value;
totalNum = totalNum + parseInt(num);
let price = item.querySelector('.price-2').getAttribute('data-price');
totalPrice = totalPrice + parseFloat(price) * num;
}
});
document.querySelector('.check-num').innerText= totalNum;
document.querySelector('.total-price').innerText = totalPrice;
}
window.onload=function(){
let itemCheckboxes = document.querySelectorAll('.item-checkbox');
itemCheckboxes.forEach(function(itemCheckbox){
itemCheckbox.onchange = function(){
updatePrice();
}
});
let minuses = document.querySelectorAll('.num-minus');
minuses.forEach(function(minus){
minus.onclick = function(event){
let num=minus.parentElement.querySelector('.num').value;
if(parseInt(num)>1)
{
minus.parentElement.querySelector('.num').value=parseInt(num)-1;
updatePrice();
}
};
});
let pluses = document.querySelectorAll('.num-plus');
pluses.forEach(function(plus){
plus.onclick = function(event){
let num=plus.parentElement.querySelector('.num').value;
plus.parentElement.querySelector('.num').value=parseInt(num)+1;
updatePrice();
}
});
}
❼ 购物车源码思路PHP
首先确定购物车中商品结构(都有哪些字段)。
比如:商品ID,商品名称,数量,单价等等。
然后,将这些结构定义在数组里
array(
    商品ID1=>array('name'=>'商品','num'=>1,'price'=>100),
    商品ID2=>array('name'=>'商品','num'=>1,'price'=>100),
)
然后把这个大的数组保存在SESSION里。就可以了。
PHP有很多数组操作函数用起来也很方便。
❽ 求PHP里的TP5的购物车代码
可以参考如下代码
<?php
classCartextendsThink{
//当前购物车名
public$sessionName;
//购物车总价格
public$totalPrice
publicfunction__construct($sessionName)
{
$this->sessionName=$sessionName;
if(!isset($_SESSION[$this->sessionName]))
{
$_SESSION[$this->sessionName]="";
}
}
//获取购物车的信息
publicfunctiongetCart(){
$cur_cart_array=$_SESSION[$this->sessionName];
return$cur_cart_array;
}
//获取购物车商品清单
publicfunctiongetCartList()
{
$cur_cart_array=$_SESSION[$this->sessionName];
if($cur_cart_array!="")
{
$mode_goods_data=M("goods_data");
$len=count($cur_cart_array);
for($i=0;$i<$len;$i++)
{
$goodsid=$cur_cart_array[$i]["id"];
$num=$cur_cart_array[$i]["num"];
$query="select(selectsfilenamefromgoods_picwheregoodsid=a.goodsidorderbysnodesclimit0,1)assfilename,b.clsnameasclsname,a.goodsidasgoodsid,a.goodsnameasgoodsname,a.PriceasPrice,a._dataaleftjoingoods_clsbona.Clsid=b.clsidwherea.goodsid=$goodsid";
$list=$mode_goods_data->query($query);
$list[0]["qty"]=$num;
$list[0]["amount"]=$num*$list[0]["Price"];
$cartList[$i]=$list[0];
$totalPrice+=$list[0]["amount"];
}
//返回商品总价格
$this->totalPrice=$totalPrice;
return$cartList;
}
}
//加入购物车,购物车的商品id和购物车的商品数量
publicfunctionaddcart($goods_id,$goods_num){
$cur_cart_array=$_SESSION[$this->sessionName];
if($cur_cart_array=="")
{
$cart_info[0]["id"]=$goods_id;//商品id保存到二维数组中
$cart_info[0]["num"]=$goods_num;//商品数量保存到二维数组中
$_SESSION[$this->sessionName]=$cart_info;
}
else
{
//返回数组键名倒序取最大
$ar_keys=array_keys($cur_cart_array);
$len=count($ar_keys);
$max_array_keyid=$ar_keys[$len-1]+1;
//遍历当前的购物车数组
//遍历每个商品信息数组的0值,如果键值为0且货号相同则购物车该商品已经添加
$is_exist=$this->isexist($goods_id,$goods_num,$cur_cart_array);
if($is_exist==false)
{
$cur_cart_array[$max_array_keyid]["id"]=$goods_id;
$cur_cart_array[$max_array_keyid]["num"]=$goods_num;
$_SESSION[$this->sessionName]=$cur_cart_array;
}
else
{
$arr_exist=explode("/",$is_exist);
$id=$arr_exist[0];
$num=$arr_exist[1];
$cur_cart_array[$id]["num"]=$num;
$_SESSION[$this->sessionName]=$cur_cart_array;
}
}
}
//判断购物车是否存在相同商品
publicfunctionisexist($id,$num,$array)
{
$isexist=false;
foreach($arrayas$key1=>$value)
{
foreach($valueas$key=>$arrayid)
{
if($key=="id"&&$arrayid==$id)
{
$num=$value["num"]+$num;
$isexist=$key1."/".$num;
}
}
}
return$isexist;
}
thinkphp开发使得我们比较容易的去进行了
//从购物车删除
publicfunctiondelcart($goods_array_id){
//回复序列化的数组
$cur_goods_array=$_SESSION[$this->sessionName];
//删除该商品在数组中的位置
unset($cur_goods_array[$goods_array_id]);
$_SESSION[$this->sessionName]=$cur_cart_array;
//使数组序列化完整的保存到cookie中
}
//清空购物车
publicfunctionemptycart(){
$_SESSION[$this->sessionName]="";
}
//修改购物车货品数量
publicfunctionupdate_cart($up_id,$up_num){
//回复序列化的数组
$cur_goods_array=$_SESSION[$this->sessionName];
$cur_goods_array[$up_id]["num"]=$up_num;
$_SESSION[$this->sessionName]=$cur_cart_array;
}
}
?>
❾ 求php增加购物车数量的加减,
伪代码:
前端:在你页面上数量那栏增加
<div class="quantity-form"><a href="javascript:void(0);" clstag="cart_num_down" class="decrement disabled" id="decrement_8888_526830_1_1">-</a>
<input autocomplete="off" type="text" class="itxt" value="1" id="changeQuantity_8888_526830_1_1_0" minnum="1">
<a href="javascript:void(0);" clstag="cart_num_up" class="increment" id="increment_8888_526830_1_1_0">+</a>
</div>
你的购物车是个循环列表,可以去得到,每个商品的信息:id是商品
function cart_num_up(id,uid){
$.ajax({
type: "POST",
url: "CART_num.PHP",
data: {id:id, num:-1,uid:uid},
dataType: "json",
success: function(data){
if(data.status==1){
});
});
}
function cart_num_down(id,uid){
$.ajax({
type: "POST",
url: "CART_num.PHP",
data: {id:id, num:1,uid:uid},
dataType: "json",
success: function(data){
if(data.status==1){
});
});
}
点一次 加或减按钮,触发js向后端发起ajax请求:返回的是增加成功和失败状态和剩余数量;
CART_num.PHP
$id = (int)$_POST['id'];
$num = (int)$_POST['num'];
$uid =(int)$_POST['uid'];  //有封装获取post或get函数更好
//查库看库存
$sort  = get_kucun_num();
//查看购物车目前数量
$cart_num = get_cart_num(uid,id);
//判断库存
if($sort >$cart_num){
}else{
}
if($num<0){
//减法    $sql =“update cart set cart_num = cart_num-1 where uid =uid and id =id ”
if(($cart_num-1)>1){
}else{
}){
//加法 $sql =“update cart set cart_num = cart_num+1 where uid =uid and id =id ”
}else{
//不正确的请求
}
❿ PHP怎么做购物车
<p>下载个ecshop参考一下吧,各方面的功能都齐了(当然包括了购物车功能)。下载网址是: <a href="http://wenwen.soso.com/z/urlalertpage.e?sp=shttp%3a%2f%2fwww.ecshop.com%2fdownload.php" target="_blank">http://www.ecshop.com/download.php</a></p>
