2017-10-04 1 views
1

im maintenant travailler dans un panier où tous les produits enregistrés dans une variable de session. Donc, si le même produit existe dans le panier, il augmentera simplement la quantité. Mais il semble que je travaille quand j'échappe à la variable mais quand j'imprime la variable de session, elle reste la même. voici mon codeMise à jour de la variable de session ne fonctionne pas 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(); ou pas ? –

+0

utilisez 'session_start();' en haut du code juste après '

+0

session_start() n'est pas le problème. la quantité de session ne définit pas ce qui est en cours d'impression –

Répondre

0

j'ai trouvé la solution. Ce serait $ _SESSION ['careat_cart'] [$ key] ['quantity'] + = $ quantiy_added; Au lieu de
$ value ['quantity'] + = $ quantiy_added; Maintenant, quelqu'un peut-il me dire les différences entre ces 2 lignes. Merci d'avance

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

L'ajout de session_start() indique une erreur Remarque: une session a déjà été démarrée - ignore session_start() –