增加SESSION金额PHP

时间:2013-04-06 10:27:30

标签: php arrays session increment

我正在使用会话来填充简单的购物车但是,如果itemAmount已经存在item_id,我会在session['cart']增加$itemAmount = $eachItem['itemAmount'];时出现问题}。

我一直在努力增加:<?php if (!isset($_SESSION)) { session_start(); } // create the cart session if(!isset($_SESSION['cart'])) { $_SESSION['cart'] = array(); } ?> <?php // if all posts are fine if(isset($_POST['item_id'])) { // set post values $post_item_id = $_POST['item_id']; $post_item_name = $_POST['item_name']; $post_options = $_POST['item_options']; $post_item_extras = $_POST['item_extras']; // set initial item amount $item_total = 1; foreach($_SESSION['cart'] as $key => $value) { if($value['cart_item_id'] == $post_item_id) { $value['cart_item_amount']++; $item_total = $value['cart_item_amount']; }else{ } } // if option selected if(isset($post_options)) { // split to get two separate values list($post_item_cost, $post_option_name) = explode("-", $post_options, 2); } // loop through extras if(isset($post_item_extras)) { foreach($post_item_extras as $key => $value) { // split to get two separate values list($post_extra_cost, $post_extra_name) = explode("-", $value, 2); // create extras array $item_extras[] = array( 'cart_extra_cost' => $post_extra_cost, 'cart_extra_name' => $post_extra_name ); } } // add each item to an array $cart_row = array( 'cart_item_id' => $post_item_id, 'cart_item_name' => $post_item_name, 'cart_option_name' => $post_option_name, 'cart_item_cost' => $post_item_cost, 'cart_item_amount' => $item_total, // add the extras array 'cart_item_extras' => $item_extras ); // add new row to the session Cart $_SESSION['cart'][] = $cart_row; } ?> Array ( [cart] => Array ( [0] => Array ( [cart_item_id] => 76 [cart_item_name] => Cheese Burger [cart_option_name] => Small [cart_item_cost] => 1.00 [cart_item_amount] => 1 [cart_item_extras] => ) [1] => Array ( [cart_item_id] => 76 [cart_item_name] => Cheese Burger [cart_option_name] => Small [cart_item_cost] => 1.00 [cart_item_amount] => 2 [cart_item_extras] => ) [2] => Array ( [cart_item_id] => 76 [cart_item_name] => Cheese Burger [cart_option_name] => Small [cart_item_cost] => 1.00 [cart_item_amount] => 3 [cart_item_extras] => ) ) ) 但是,无法让它发挥作用。

这就是我现在所拥有的;

更新; 具有更好命名的代码,我仍然需要帮助让cart_item_amount增加,此时它每次都会创建一个新项目,而不是递增cart_item_amount。

{{1}}

2 个答案:

答案 0 :(得分:1)

if($eachItem['itemID'] = $_POST['item_id']) {

=不是比较运算符,请参阅 http://php.net/manual/en/language.operators.comparison.php

应该是

if($eachItem['itemID'] == $_POST['item_id']) {

答案 1 :(得分:0)

只需使用它即可使用;

foreach($_SESSION['cart'] as $key => $value) {

    if($value['cart_item_id'] == $post_item_id) {

         $_SESSION['cart'][$key]['cart_item_amount']++;

         return false;

}