PHP チュートリアル: Cookie と配列を組み合わせてショッピング カートを実装する

黄舟
リリース: 2023-03-04 08:32:01
オリジナル
1090 人が閲覧しました

多くの PHP 関数で得られた結果は配列で与えられることがわかりました。最も一般的に使用されるのは mysql_fetch_array() で、
取得した文字列情報を含めて配列を生成し、その後関数explode を使用して配列を文字列に分解します。 (); implode() ;

私はこれまでショッピングカートなどの実装を書いたことがなく、1週間断続的に書いて理解しました。初心者)ショッピングカートの処理プログラム。
そして、私はクラスに入ったことがないので、今でもそのプロセスに集中しています。

私が使用するメソッドの本質は、配列に Cookie を保存し、配列を追加、削除、および変更することです。配列内の各レコードのセットは、製品に関する情報 (数量、価格など) です



解決策 ショッピング カートのアイデアは、Cookie を使用して 2 次元配列を記録することです。 1 つのディメンションは各製品を表し、2 つのディメンションには製品 ID、製品の数量などが含まれます。いずれにせよ、それは任意の数の製品属性を追加できます。

ショッピング カート内のアイテムに対する操作には通常、アイテムの追加、アイテムの数量の変更、アイテムの削除、ショッピング カートのクリアが含まれます。
これらの操作はすべて Cookie に対するものです。そのたびに、Cookie 内の配列が取得、追加、変更、削除され、Cookie に記録されます。ショッピング カートをクリアする場合は、同じ名前の Cookie を空に設定するだけです。

以下は私が書いた具体的な操作関数です

//カートに追加
function addcart($goods_id,$goods_num){

$cur_cart_array = unserialize(stripslashes($_COOKIE['shop_cart_info']));
if($cur_cart_array==""){

$カート情報[0][] = $goods_id;
$cart_info[0][] = $goods_num;

}elseif($cur_cart_array<>); {

//最大の配列キー名を逆順で返します
$ar_keys = array_keys($cur_cart_array)
rsort($ar_keys);
$max_array_keyid = $ar_keys[0]+1;ショッピングカート配列
//各商品情報配列の 0 の値をトラバースします。キー値が 0 で商品番号が同じ場合、ショッピングカート内に同じ商品が存在します
foreach($cur_cart_array as $goods_current_cart){
foreach ($goods_current_cart as $key=>$ Goods_current_id){
if($key == 0 and $goods_current_id == $goods_id){
echo "";
exit();
}
}

$cur_cart_array[$max_array_keyid][ ] = $goods_id;
$ cur_cart_array[$max_array_keyid ][] = $goods_num;

}

}

// ショッピングカートから削除
関数デルカート($goods_array_id){

$cur_goods_array = unserialize (stripslashes($_COOKIE['shop_cart_info']));

//配列内の商品の位置を削除
unset($cur_goods_array[$goods_array_id]);
setcookie ("shop_cart_info",serialize($cur_goods_array));

}

// ショッピング カート内の商品の数量を変更します
function update_cart($up_id,$up_num,$g​​oods_ids){

// 最初に Cookie をクリアしますリセットできるように、3 つの配列パラメータを渡します 1 配列の識別子 2 製品数量配列 3 製品番号配列
//Cookie がクリアされていない場合、数量がゼロの製品は処理できません
setcookie( "shop_cart_info","");
foreach($up_id as $song){

// 現在の配列の最初のユニットを返し、ポインタを 1 つ下の位置に移動します
$goods_nums = current($up_num); current($goods_ids);
next($up_ids);

//商品の数量が空の場合は、ここで配列の値を登録解除し、 continue 2 ステートメントを使用して次の操作を回避します。そして foreach ループを続けます
while($goods_nums == 0){
continue 2; }

$cur_goods_array[$song][0] = $goods_id; ][1] = $goods_nums;

}

setcookie("shop_cart_info",serialize($cur_goods_array));

}



ニーズ、ポイント、現金特典の有無など。

上記は、ショッピング カートの内容を実現するための Cookie と配列の組み合わせです。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート