僅用PHP4Session實現的迷你購物籃(二)

片段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。如果籃子中有物品時用於顯示它們。
// 加到這裡。
?>
  瞧,不錯吧。"cest tout", 法國人會這樣說。如果都做好瞭,你可以保存這個文件為minibasket.inc 並且將其包括到顯示商品的PHP頁面中。
Zip格式的minibasket.inc和basket.php

You May Also Like