2017-10-04 8 views
1

今、すべての製品がセッション変数に保存されているカートで作業しています。同じ商品がカートに存在すると、数量が増えます。しかし、私は変数をエコーするときに働いているように見えますが、私はセッション変数を出力するときには同じままです。ここに私のコードは、私が解決策を見つけたセッション変数が更新されないphp

<?php 
require_once("inc/init.php"); 

$product_id = htmlentities($_POST['product_id'], ENT_QUOTES); 
$quantiy_added = htmlentities($_POST['quantiy_added'], ENT_QUOTES); 
$op = htmlentities($_POST['op'], ENT_QUOTES); 

$Cart = new Cart(); 

//var_dump($Cart); 

global $mysqli; 

if ($op == "add-item") { 
    if (isset($_SESSION['careat_cart'])) {    //if same item exists 
     foreach ($_SESSION['careat_cart'] as $key => $value) { 
      if ($product_id == $value['id']) { 
       $value['quantity'] += $quantiy_added; 
       echo $value['quantity']; 
      } else echo "new item"; 

     } 

    } 
} 
+0

check session_start();か否か ? –

+0

'<?php'の直後に' session_start(); 'を使ってください。 –

+0

に行くのがいいです。session_start()は問題ではありません。セッション数が印刷内容を設定していない –

答えて

0

です。 $ _SESSION ['careat_cart'] [$ key] ['quantity'] + = $ quantiy_added; 代わりに
$ value ['quantity'] + = $ quantiy_added; 誰も私にこれら2行の違いを教えてもらえますか?ありがとうございます。

2
<?php 
session_start(); 
require_once("inc/init.php"); 

$product_id = htmlentities($_POST['product_id'], ENT_QUOTES); 
$quantiy_added = htmlentities($_POST['quantiy_added'], ENT_QUOTES); 
$op = htmlentities($_POST['op'], ENT_QUOTES); 

$Cart = new Cart(); 

//var_dump($Cart); 

global $mysqli; 

if ($op == "add-item") { 
    if (isset($_SESSION['careat_cart'])) {    //if same item exists 
     foreach ($_SESSION['careat_cart'] as $key => $value) { 
      if ($product_id == $value['id']) { 

       $value['quantity'] += $quantiy_added; 
       echo $value['quantity']; 
      } else echo "new item"; 

     } 

    } 
} 
+0

session_start()がエラーを表示しています。注意:セッションはすでに開始されています - session_start() –

関連する問題