那位高手有session写的购物篮!!!100百相送 我现在做的就是购物网站耶。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我这有购物的类,带有注释。参考一下吧!<?/*****************************************************************************//* *//* file type: 包含文件,建议后缀为.inc *//* *//* file name: cart.inc *//* *//* Description: 定义一个购车类 *//* *//* Func list : class cart *//* *//* author : bigeagle *//* *//* date : 2000/12/24 *//* *//* History: 2000/12/24 finished *//* *//*****************************************************************************///定义本文件常量define("_CART_INC_" , "exists") ;/*购物车类*/class TCart{var $SortCount; //商品种类数var $TotalCost; //商品总价值var $Id; //每类商品的ID(数组)var $Name; //每类商品的名称(数组)var $Price; //每类商品的价格(数组)var $Discount; //商品的折扣(数组)var $GoodPrice ; //商品的优惠价格(数组)var $Count; //每类商品的件数(数组)var $MaxCount ; //商品限量(数组)//******构造函数function TCart(){$this->SortCount=0;session_start(); //初始化一个sessionsession_register('sId');session_register('sName');session_register('sPrice');session_register('sDiscount');session_register('sGoodPrice') ;session_register('sCount') ;session_register('sMaxCount') ;$this->Update();$this->Calculate();}//********私有,根据session的值更新类中相应数据function Update(){global $sId,$sName,$sPrice,$sCount,$sDiscount,$sMaxCount,$sGoodPrice;if(!isset($sId) or !isset($sName) or !isset($sPrice)or !isset($sDiscount) or !isset($sMaxCount)or !isset($sGoodPrice) or !isset($sCount)) return;$this->Id =$sId;$this->Name =$sName;$this->Price =$sPrice;$this->Count =$sCount;$this->Discount = $sDiscount ;$this->GoodPrice = $sGoodPrice ;$this->MaxCount = $sMaxCount ;//计算商品总数$this->SortCount=count($sId);}//********私有,根据新的数据计算每类商品的价值及全部商品的总价function Calculate(){for($i=0;$i<$this->SortCount;$i++){/*计算每件商品的价值,如果折扣是0 ,则为优惠价格*/$GiftPrice = ($this->Discount[$i] == 0 ? $this->GoodPrice :ceil($this->Price[$i] * $this->Discount[$i])/100 );$this->TotalCost += $GiftPrice * $this->Count[$i] ;}}//**************以下为接口函数//*** 加一件商品// 判断是否蓝中已有,如有,加count,否则加一个新商品//首先都是改session的值,然后再调用update() and calculate()来更新成员变量function Add($a_ID , $a_Name , $a_Price , $a_Discount ,$a_GoodPrice , $a_MaxCount , $a_Count){global $sId , $sName , $sCount , $sPrice , $sDiscount ,$sGoodPrice , $sMaxCount ;$k=count($sId);for ($i=0; $i<$k; $i++){ //先找一下是否已经加入了这种商品if($sId[$i]==$a_ID){$sCount[$i] += $a_Count ;break;}}if($i >= $k){ //没有则加一个新商品种类$sId[] = $a_ID;$sName[] = $a_Name;$sPrice[] = $a_Price;$sCount[] = $a_Count;$sGoodPrice[] = $a_GoodPrice ;$sDiscount[] = $a_Discount ;$sMaxCount[] = $a_MaxCount ;}$this->Update(); //更新一下类的成员数据$this->Calculate();}//移去一件商品function Remove($a_ID){global $sId , $sName , $sCount , $sPrice , $sDiscount ,$sGoodPrice , $sMaxCount ;$k = count($sId);for($i=0; $i < $k; $i++){if($sId[$i] == $a_ID){$sCount[$i] = 0 ;break;}}$this->Update();$this->Calculate();}//改变商品的个数function ModifyCount($a_i,$a_Count){global $sCount;$sCount[$a_i] = $a_Count ;$this->Update();$this->Calculate();}/***************************清空所有的商品*****************************/function RemoveAll(){session_unregister('sId');session_unregister('sName');session_unregister('sPrice');session_unregister('sDiscount');session_unregister('sGoodPrice') ;session_unregister('sCount') ;session_unregister('sMaxCount') ;$this->SortCount = 0 ;$this->TotalCost = 0 ;}//是否某件商品已在蓝内,参数为此商品的IDfunction Exists($a_ID){for($i=0; $i<$this->SortCount; $i++){if($this->Id[$i]==$a_ID) return TRUE;}return FALSE;}//某件商品在蓝内的位置function IndexOf($a_ID){for($i=0; $i<$this->SortCount; $i++){if($this->Id[$i]==$id) return $i;}return 0;}//取一件商品的信息,主要的工作函数//返回一个关联数组,function Item($i){$Result[id] = $this->Id[$i];$Result[name] = $this->Name[$i];$Result[price] = $this->Price[$i];$Result[count] = $this->Count[$i];$Result[discount] = $this->Discount[$i] ;$Result[goodprice] = $this->GoodPrice[$i] ;$Result[maxcount] = $this->MaxCount[i] ;return $Result;}//取总的商品种类数function CartCount(){return $this->SortCount;}//取总的商品价值function GetTotalCost(){return $this->TotalCost;}} ?> linux下程序报警 如何将多种不同的数据库查询结果集中显示到一个搜索结果页面? LINUX 下 为什么PHP从MYSQL里读取出来的数据还是乱码 这样的正则表达式怎么写 关于$_GET的问题 phpmyadmin的乱码问题? ★ 请问怎么使用PHP在Oracle里做分页!? 急急急!!!PHP执行命令一问:对于象top这样的不会立即返回的命令的问题 修改静态页面的时候会不会出这种问题? Zend Optimizer???? 谁有网站计数器的源码啊??? 这是什么原因?
<?
/*****************************************************************************/
/* */
/* file type: 包含文件,建议后缀为.inc */
/* */
/* file name: cart.inc */
/* */
/* Description: 定义一个购车类 */
/* */
/* Func list : class cart */
/* */
/* author : bigeagle */
/* */
/* date : 2000/12/24 */
/* */
/* History: 2000/12/24 finished */
/* */
/*****************************************************************************///定义本文件常量
define("_CART_INC_" , "exists") ;/*购物车类*/
class TCart
{var $SortCount; //商品种类数
var $TotalCost; //商品总价值var $Id; //每类商品的ID(数组)
var $Name; //每类商品的名称(数组)
var $Price; //每类商品的价格(数组)
var $Discount; //商品的折扣(数组)
var $GoodPrice ; //商品的优惠价格(数组)
var $Count; //每类商品的件数(数组)
var $MaxCount ; //商品限量(数组)//******构造函数
function TCart()
{
$this->SortCount=0;session_start(); //初始化一个session
session_register('sId');
session_register('sName');
session_register('sPrice');
session_register('sDiscount');
session_register('sGoodPrice') ;
session_register('sCount') ;
session_register('sMaxCount') ;$this->Update();
$this->Calculate();
}//********私有,根据session的值更新类中相应数据
function Update()
{
global $sId,$sName,$sPrice,$sCount,$sDiscount,$sMaxCount,$sGoodPrice;if(!isset($sId) or !isset($sName) or !isset($sPrice)
or !isset($sDiscount) or !isset($sMaxCount)
or !isset($sGoodPrice) or !isset($sCount)) return;$this->Id =$sId;
$this->Name =$sName;
$this->Price =$sPrice;
$this->Count =$sCount;
$this->Discount = $sDiscount ;
$this->GoodPrice = $sGoodPrice ;
$this->MaxCount = $sMaxCount ;//计算商品总数
$this->SortCount=count($sId);}//********私有,根据新的数据计算每类商品的价值及全部商品的总价
function Calculate()
{
for($i=0;$i<$this->SortCount;$i++)
{
/*计算每件商品的价值,如果折扣是0 ,则为优惠价格*/
$GiftPrice = ($this->Discount[$i] == 0 ? $this->GoodPrice :
ceil($this->Price[$i] * $this->Discount[$i])/100 );
$this->TotalCost += $GiftPrice * $this->Count[$i] ;
}
}
//**************以下为接口函数//*** 加一件商品
// 判断是否蓝中已有,如有,加count,否则加一个新商品
//首先都是改session的值,然后再调用update() and calculate()来更新成员变量
function Add($a_ID , $a_Name , $a_Price , $a_Discount ,
$a_GoodPrice , $a_MaxCount , $a_Count)
{
global $sId , $sName , $sCount , $sPrice , $sDiscount ,
$sGoodPrice , $sMaxCount ;$k=count($sId);
for ($i=0; $i<$k; $i++)
{ //先找一下是否已经加入了这种商品
if($sId[$i]==$a_ID)
{
$sCount[$i] += $a_Count ;
break;
}
}
if($i >= $k)
{ //没有则加一个新商品种类
$sId[] = $a_ID;
$sName[] = $a_Name;
$sPrice[] = $a_Price;
$sCount[] = $a_Count;
$sGoodPrice[] = $a_GoodPrice ;
$sDiscount[] = $a_Discount ;
$sMaxCount[] = $a_MaxCount ;
}$this->Update(); //更新一下类的成员数据
$this->Calculate();
}//移去一件商品
function Remove($a_ID)
{
global $sId , $sName , $sCount , $sPrice , $sDiscount ,
$sGoodPrice , $sMaxCount ;$k = count($sId);
for($i=0; $i < $k; $i++)
{
if($sId[$i] == $a_ID)
{
$sCount[$i] = 0 ;
break;
}
}$this->Update();
$this->Calculate();
}//改变商品的个数
function ModifyCount($a_i,$a_Count)
{
global $sCount;$sCount[$a_i] = $a_Count ;
$this->Update();
$this->Calculate();
}
/***************************
清空所有的商品
*****************************/
function RemoveAll()
{
session_unregister('sId');
session_unregister('sName');
session_unregister('sPrice');
session_unregister('sDiscount');
session_unregister('sGoodPrice') ;
session_unregister('sCount') ;
session_unregister('sMaxCount') ;
$this->SortCount = 0 ;
$this->TotalCost = 0 ;
}
//是否某件商品已在蓝内,参数为此商品的ID
function Exists($a_ID)
{
for($i=0; $i<$this->SortCount; $i++)
{
if($this->Id[$i]==$a_ID) return TRUE;
}
return FALSE;
}//某件商品在蓝内的位置
function IndexOf($a_ID)
{
for($i=0; $i<$this->SortCount; $i++)
{
if($this->Id[$i]==$id) return $i;
}
return 0;
}//取一件商品的信息,主要的工作函数
//返回一个关联数组,
function Item($i)
{
$Result[id] = $this->Id[$i];
$Result[name] = $this->Name[$i];
$Result[price] = $this->Price[$i];
$Result[count] = $this->Count[$i];
$Result[discount] = $this->Discount[$i] ;
$Result[goodprice] = $this->GoodPrice[$i] ;
$Result[maxcount] = $this->MaxCount[i] ;
return $Result;
}//取总的商品种类数
function CartCount()
{
return $this->SortCount;
}//取总的商品价值
function GetTotalCost()
{
return $this->TotalCost;
}
}
?>