<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      貼個購物車的類,最大的特點是只用了一個Session

      [摘要]各位可根據自己需要改一下,最大的特點是只用了一個Session,有的地方是用了以前網上的一個購物車的類改寫的,我也沒有好好地整理過 <?phpclass cart var sortCount...
      各位可根據自己需要改一下,最大的特點是只用了一個Session,有的地方是用了以前網上的一個購物車的類改寫的,我也沒有好好地整理過
      <?php
      class cart {

      var $sortCount; //商品種類數
      var $totalCost; //商品總金額
      /* 所有的商品,如:$myCart[5][$name]:商品編號為5的名稱
      * $myCart[5][$price]:商品編號為5的單價
      *        $myCart[5][$count]:商品編號為5的數量
      * $myCart[5][$cost]:商品編號為5的合計金額
      */
      var $myCart;
      var $Id;//每類商品的ID(數組)
      var $Name;//每類商品的名稱(數組)
      var $Price;//每類商品的價格(數組)
      var $Count;//每類商品的件數(數組)
      var $Cost;//每類商品的價值(數組)

       
      //******構造函數
      function cart(){
      $this->sortCount = 0;
      $this->totalCost = 0;
      $this->myCart= array();
      session_start();//初始化一個session
      if(session_is_registered("myCart")==false)session_register('myCart'); 
      $this->update();
      //$this->Calculate();
       
      }
       
      //********私有,根據session的值更新類中相應數據
      function update(){
      session_start();//初始化一個session
      $myCart = $_SESSION["myCart"];
      if(false==$myCart)
      {
      $this->sortCount = 0;
      $this->totalCost = 0;
      $this->myCart = array();
      return false;
      }
      //得到商品的總數量
      $this->sortCount=count($myCart);
      if($this->sortCount>0)
      {
      //開始計算商品的金額
      $totalCost = 0;
      foreach($myCart as $key=>$val)
      {
      //先四舍五入
      foreach($val as $proName=>$proVal)
      {
      if($proName !="name")
      {
      $val[$proName] = round(eregi_replace(",", "",$proVal),2);
      $myCart[$key][$proName] = $val[$proName];
      }
      }

      //計算每件商品的金額
      $myCart[$key]["cost"] = round($val["count"]*$val["price"], 2);
      //得到所有商品的金額
      $totalCost += $myCart[$key]["cost"];
      }
      $this->totalCost = $totalCost;
      $this->myCart = $myCart;
      $_SESSION["myCart"] = $myCart;

      }
       
      }
       
      /**
      * 格式化數字為貨幣數據
      *
      *
      **/
      function formatNum($data)
      {
      foreach($data as $key=>$val)
      {
      foreach($val as $sName=>$sValue)
      {
      if($sName !="name")
      {
      $data[$key][$sName] = number_format($sValue, 2);
      }
      }
      }
      return $data;

      }
      //**************以下為接口函數
       
      //*** 加一件商品
      // 判斷是否藍中已有,如有,加count,否則加一個新商品
      //首先都是改session的值,然后再調用update() and calculate()來更新成員變量
      function addOne($id,$na,$pr)
      {
      session_start();//初始化一個session
      $myCart = $_SESSION["myCart"];
      //設置購物車中的數量
      $myCart[$id]["name"]= $na;
      $myCart[$id]["price"] = $pr;
      ++$myCart[$id]["count"];
      $_SESSION["myCart"] = $myCart;
      //更新一下類的成員數據
      $this->update();

      }
      /**
      * 向購物車中添加一組商品,如果沒有,進行添加,如果已經存在,則更新為data
      * @param $data- 要添加的商品,格式為:
      * $data[0][id], $data[0][name],
      * $data[0][price],$data[0][count]
      * @return boolean
      */
      function addData($data)
      {
      if(count($data > 0))
      {
      session_start();//初始化一個session
      $myCart = $_SESSION["myCart"];
      foreach($data as $val)
      {
      extract($val);
      //設置購物車中的數量
      $myCart[$id]["name"]= $name;
      $myCart[$id]["price"] = $price;
      $myCart[$id]["count"] = $count;
      }
      $_SESSION["myCart"] = $myCart;
      //更新一下類的成員數據
      $this->update();
      }
      }
      /*
      * 更改一件商品的單價
      *
      *
      *
      **/
      function updatePrice($id, $price)
      {
      if($price <=0)return false;
      session_start();//初始化一個session
      $myCart = $_SESSION["myCart"];
      if($myCart[$id]==true)
      {
      $myCart[$id]["price"]=$price;

       $_SESSION["myCart"] = $myCart;
      $this->update();
      }
      }
      //將一件商品的數量減1
      function removeOne($id)
      {
      $count = $this->myCart[$id]["count"];
      if($count>0)
      {
      $this->modifyCount($id, --$count);
      }
       
      }
       
      //改變商品的個數,如果傳入單價,則一起更改單價
      function modifyCount($id, $ncount, $price=0)
      {
      if($ncount <= 0) return false;
      session_start();//初始化一個session
      $myCart = $_SESSION["myCart"];
      if($myCart[$id]==true)
      {
      $myCart[$id]["count"]=$ncount;
      //如果有傳入單價,則一起更改單價
      if($price >0 ) $myCart[$id]["price"]=$price;

       $_SESSION["myCart"] = $myCart;
      $this->update();
      }
       
      }
       
      //清空一種商品
      function emptyOne($i)
      {
      session_start();//初始化一個session
      $myCart = $_SESSION["myCart"];
      unset($myCart[$i]);
      if(count($myCart)==0)
      {
      $this->emptyAll();
      }else{
      $_SESSION["myCart"] = $myCart; 
      $this->update();
      }
      }
       
       
      /***************************
      清空所有的商品
       
      因為在win里PHP不支持session_destroy()函數,所以這個清空函數不完善,
      只是把每種商品的個數置為0。
      如果是在linux下,可以直接用session_destroy()來做。
      *****************************/
      function emptyAll()
      {
       session_start();//初始化一個session
      $myCart = $_SESSION["myCart"];

      unset($myCart);
      $_SESSION["myCart"] = $myCart; 
      $this->update();
       
      }
       
      /**
      *返回所有購物車中的數據
      *
      **/
      function getData()
      {
      if($this->sortCount > 0)
      {
      return $this->myCart;
      }else{
      return array();
      }
      }
      //取一件商品的信息,主要的工作函數
      //返回一個關聯數組,下標分別對應 id,name,price,count,cost
      function getOne($i){
      $data = $this->myCart[$i];
      if(false==$data) return array();

      $data["id"]=$i;
      return $data;

      }
       
      //取總的商品種類數
      function getSortCount(){
      return $this->sortCount;
      }
       
      //取總的商品價值
      function getTotalCost(){
      return $this->totalCost;
      }
       
      //end class
      }

      ?> 


      日韩精品一区二区三区高清