0
我嘗試將產品添加到購物車,但我有一些循環邏輯問題。 此功能應該添加新產品並檢查產品ID是否已經在購物車中。如果它在購物車中,它應該將現有產品或用戶選擇的數量加1。 下面是一些代碼,我有:添加到購物車功能創建錯誤的陣列
function AddToCart($pid, $q)
{
$quantity = $q;
$product_id = $pid;
if (is_array($_SESSION['products']))
{
foreach($_SESSION['products'] as $key => $my_value)
{
if ($pid === $my_value['product_id'])
{
if ($quantity != 1)
{
$quantity = $my_value['quantity'] + $quantity;
$_SESSION['products'][$key]['quantity'] = $quantity;
}
else
{
$quantity = $my_value['quantity'] + 1;
$_SESSION['products'][$key]['quantity'] = $quantity;
}
}
else
{
$_SESSION['products'][] = array(
'product_id' => $product_id,
'quantity' => $quantity,
);
}
}
}
else
{
$_SESSION['products'][] = array(
'product_id' => $product_id,
'quantity' => $quantity,
);
}
}
的$ _SESSION中的var_dump會有如下:
array(8) {
[0]=> array(2) { ["product_id"]=> int(4) ["quantity"]=> int(1) }
[1]=> array(2) { ["product_id"]=> int(10) ["quantity"]=> int(1) }
[2]=> array(2) { ["product_id"]=> int(11) ["quantity"]=> int(2) }
[3]=> array(2) { ["product_id"]=> int(11) ["quantity"]=> int(3) }
[4]=> array(2) { ["product_id"]=> int(12) ["quantity"]=> int(2) }
[5]=> array(2) { ["product_id"]=> int(12) ["quantity"]=> int(3) }
[6]=> array(2) { ["product_id"]=> int(12) ["quantity"]=> int(4) }
[7]=> array(2) { ["product_id"]=> int(12) ["quantity"]=> int(5) } }
雖然我只添加4個產品:ID 4,10,11和12
應該工作,但以後我添加3新產品的條件,如果($ PID === $ MY_VALUE [ '的product_id']){ $ _SESSION [ '產品'] [$關鍵] [ '量'] + = $ q; ('product'] [] = array('product_id'=> $ pid, 'quantity'=> $ q); }我得到了相同的結果 –
哎呀抱歉,代碼是完全錯誤的。如果您仍然需要它,請嘗試新版本。 – stomo21
非常感謝!:)我已經改變了一點代碼,所以它現在工作正常:) –