Как увеличить количество продукта, если продукт уже существует в сеансе

0

Я использую приведенный ниже код и хочу увеличить количество в массиве сеанса, но его не работает

if(!empty($_SESSION['quote']))
{

$prdata=$_SESSION['quote'];
}

$product_id = $data['id'];
$product_image = $data['image'];
$product_name = $data['pname'];
$product_quantity = $data['quantity'];
$product_price = $data['price'];

foreach ($_SESSION["quote"] as $cart_itm){         
         if($cart_itm['product_id'] == $product_id){ //the item exist in array

    $newdat = array('product_id' => $product_id,'quantity'=>$product_quantity,'price'=>$product_price,'name'=>$product_name,'image'=>$product_image); 
    $found = true;

}else{

    $newdat = array('product_id' => $product_id,'quantity'=>$product_quantity,'price'=>$product_price,'name'=>$product_name,'image'=>$product_image); 

}
  • 0
    Что значит "не работает"? Что вы ожидаете? Что происходит?
Теги:
arrays
session

1 ответ

0
Лучший ответ

Вам не нужно снова помещать туда product_id и т.д., просто измените сумму. Ваш код будет короче, яснее, и вы избежите других возможных опечаток и т.д.

if($cart_itm['product_id'] == $product_id) {
    $cart_itm['quantity'] += $product_quantity; // expect in $product_quantity is the amount you want to add to the current one
    // it a shorter variant of $cart_itm['quantity'] = $cart_itm['quantity'] + $product_quantity; 
}
  • 0
    Не забывайте, что посетителю необходимо опустошить корзину и уменьшить количество продукта. Я рекомендую создать класс ajax, где есть функции increse () delete_cart () и lower ().
  • 0
    @ KārlisMillers: не имеет значения. Мы не знаем, где OP взял переменную, например, на странице сведений. Другое дело, что += -1 правильно уменьшает сумму.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню