/**
*  格式化数字为货币数据
*
*
**/
    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();  
        }
      
    }  

解决方案 »

  1.   


        //清空一种商品  
        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    
    }  
     
    ?>    
      

  2.   

    小弟比较急,在线等!请各位朋友帮忙看看!各位要是有比较好的PHP购物车的例子或代码也可以提供来参考一下,谢谢了!
      

  3.   

    普通的seesion处理,没有什么特别的,看看PHP中有关session的几个帮助主题
    应该可以看懂这段代码!