2017-10-06 1 views
-2

J'essaie d'ajouter 1 à session['cart']['qty'] s'il ne s'agit pas d'une nouvelle entrée et s'il s'agit d'un nouvel article, il ajoutera simplement l'article à session['cart'].Comment puis-je ajouter 1 à qty si In_array est vrai en utilisant PHP

if (!isset($_SESSION['cart'])) { 
    $item = array('pid' => $p['productID'], 
        'qty' => 1 
       ); 
    $_SESSION['cart'][0] = $item; 
} else { 
    $item_id = array_column($_SESSION['cart'], "pid"); 

    if (in_array($p['productID'], $item_id)) { 
     $to_update = 'qty'; 
     $new_qty = 5; 
     $base = $_SESSION['cart']['pid']['qty']; 
    } else { 
     $count = count($_SESSION['cart']); 
     $item = array('pid' => $p['productID'], 
         'qty' => 1 
        ); 
     $_SESSION['cart'][$count] = $item; 
    } 
} 
+0

Que se passe-t-il réellement? – SteveFest

Répondre

0

Vous pouvez utiliser le $ pid comme un index unique pour suivre comme

$pid=$p['productID']; 
if(!isset($_SESSION['cart'][$pid])){ 
    $item = array(
     'pid' => $pid, 
     'qty' => 1 
    ); 
    $_SESSION['cart'][$pid] = $item; 
}else{ 
    /* 
    * add 1 qty 
    */ 
    if(isset($_SESSION['cart'][$pid])) { 
     $_SESSION['cart'][$pid]['qty']= ($_SESSION['cart'][$pid]['qty'] +1); 
    } 
} 

vous cal également utiliser une quantité similaire réduire.

0

Vous ne modifiez pas la variable de session. Essayez ceci:

if (!isset($_SESSION['cart'])) { 
    $item = array('pid' => $p['productID'], 
        'qty' => 1 
       ); 
    $_SESSION['cart'][0] = $item; 
} else { 
    $item_id = array_column($_SESSION['cart'], "pid"); 

    if (in_array($p['productID'], $item_id)) { 
     $new_qty = 5; 
     $_SESSION['cart'][$p['productID']]['qty'] += $new_qty; 
    } else { 
     $count = count($_SESSION['cart']); 
     $item = array('pid' => $p['productID'], 
         'qty' => 1 
        ); 
     $_SESSION['cart'][$count] = $item; 
    } 
} 

Cette ligne ici n'a pas de sens.

$base = $_SESSION['cart']['pid']['qty']; 

Les tableaux multidimensionnels ne fonctionnent pas comme cela.
Vous essayez d'accéder à la clé qty à partir du tableau $_SESSION['cart']['pid'], mais cela n'existe pas. Ces deux clés sont des frères et sœurs.

+0

merci pour ces réponse, mais il ya un autre problème si je choisis d'acheter 2 produits et essayer d'incrémenter la quantité de 1 produit que j'ai déjà ajouté à mon panier il ne fusionnera pas va créer une nouvelle ligne –

+0

@EcnerolOdirrag Okay, bien sûr, as Tant que la réponse que vous avez choisie fonctionne pour vous! – JustCarty