
 
 | 
| 技术资料  > PHP技术 > 入门教程 : 仅用PHP4 Session实现的迷你购物篮(二) |  
仅用PHP4 Session实现的迷你购物篮(二) March 25,2004 |  
作者:Evert Smith 翻译:limodou  
 
片段3。创建新的篮子并向其中增加一条项目  
 
<?php  
 
// 将项目计数设为1  
$ses_basket_items=1;  
 
// 填充4个数组的第0个位置,使用从href链接传过来的值  
// 链接是在‘给你的页面增加链接’部分所讲的  
$ses_basket_name[0]=$basket;  
$ses_basket_amount[0]=1;  
$ses_basket_price[0]=$price;  
$ses_basket_id[0]=$id;  
 
// 在session中注册新的篮子  
session_register("ses_basket_items");  
session_register("ses_basket_name");  
session_register("ses_basket_amount");  
session_register("ses_basket_price");  
session_register("ses_basket_id");  
 
?>  
 
  这样将创建一个篮子,将所以的值填在数组第0个位置上,并利用session注册数组。一个篮子诞生了。  
 
 
片段4。填充篮子  
 
<?php  
 
$basket_position_counter=0; //篮子中的位置  
$double=0; //双重入口标志设为NO  
if ($ses_basket_items>0){  
// 检查是否篮子包含的项目中有双重入口  
foreach ($ses_basket_name as $basket_item){  
// 遍历数组所包含的名字,检查是否与从href所传来的相配匹  
if ($basket_item==$basket){  
// 如果在篮子中已经有了一个项目,将flag设为1  
$double=1;  
// 记住项目的位置,将进行更新  
$basket_position=$basket_position_counter;  
}  
$basket_position_counter++; //增加篮子中的实际位置  
}  
}  
 
// 更新篮子  
if ($double==1){  
// 如果项目在你的篮子中已经存在则更新在$basket_position处理的数量和位置  
$oldamount=$ses_basket_amount[$basket_position];  
$ses_basket_amount[$basket_position]++;  
$amount=$ses_basket_amount[$basket_position];  
$oldprice=$ses_basket_price[$basket_position];  
//更新价格  
$newprice=($oldprice/$oldamount)*$amount;  
$ses_basket_price[$basket_position]=$newprice;  
}else{  
// 如果它不在你的篮子中,则在数组末尾增加新的项目  
$ses_basket_name[]=$basket;  
$ses_basket_amount[]=1;  
$ses_basket_price[]=$price;  
$ses_basket_id[]=$id;  
$ses_basket_items++;  
}  
 
?>  
 
  太好了,现在你可以填充迷你购物篮并显示它了。  
 
将代码片断组织到一起  
 
  让我们将代码组织到一起并且存为minibasket.inc。  
 
<?php  
 
// 记住在代码片段1中, 决定是不是要增加?  
// 让我们在这里重复它  
if ($basket!=""){  
// 在这里,项目将要加到篮中。让我们检查一下是否存在一个注册过的篮子  
if (session_is_registered("ses_basket_items")){  
// 存在一个注册过的篮子,将代码片段4放在这里。  
// 它增加项目到注册过的篮子中,检查重复记录,更新它们或在数组的最后增加项目  
} else {  
// 不存在注册过的篮子,将代码片段3放在这里。它创建一个新的篮子,并且  
// 通过session注册它。  
}  
}  
// 剩下的都是代码片段2。如果篮子中有物品时用于显示它们。  
// 加到这里。  
 
?>  
 
  瞧,不错吧。"c'est tout", 法国人会这样说。如果都做好了,你可以保存这个文件为minibasket.inc  
并且将其包括到显示商品的PHP页面中。  
 
Zip格式的minibasket.inc和basket.php  
 
上一页  
 
转自:PHPBuilder.com  
         |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved