2014-05-12 6 views
0

Je veux mettre à jour l'inventaire des produits serait heureux si vous m'aider ne pouvais pas. Mon tableau de la liste des produitsphp mise à jour multi-tableau mise à jour

$_SESSION['item']; 
Array ( 
[0] => Array ([product_id] => 9 [stock] => 20) 
[1] => Array ([product_id] => 8 [stock] => 30) 
[2] => Array ([product_id] => 7 [stock] => 26) 
[3] => Array ([product_id] => 6 [stock] => 42) 
) 

je

$product_id = mysql_real_escape_string($_POST['product_id']); 
$stock = mysql_real_escape_string($_POST['stock']); 
$found = false; 
foreach($_SESSION['item'] as $product){ 
    if($product_id == $product['product_id']) { 
     $found = true; 
     break; 
    } 
} 

if($found){ 
    $_SESSION['item'][$product_id]['stock'] += $stock; 
}else{ 

    // go get new product and add to $_SESSION['item'] 
} 
+1

Eh bien et quelle est la question? Où est une erreur? Qu'est-ce qui ne fonctionne pas? –

+0

Quelle est la valeur de $ found après la boucle foreach? –

+0

ne pas mettre à jour le produit stock –

Répondre

1

Essayez ceci:

$product_id = mysql_real_escape_string($_POST['product_id']); 
$stock = mysql_real_escape_string($_POST['stock']); 
$found = false; 
foreach($_SESSION['item'] as $index => $product){ 
    if($product_id == $product['product_id']) { 
     $found = true; 
     break; 
    } 
} 

if($found){ 
    $_SESSION['item'][$index]['stock'] += $stock; 
}else{ 
    // go get new product and add to $_SESSION['item'] 
} 

Expliquer: le tableau est $_SESSION['item']pas indexé par le product_id. Vous devez donc obtenir et stocker un index de l'élément de tableau actuel dans la boucle foreach et l'utiliser pour mettre à jour le tableau $_SESSION['item'].

+0

votre accueil, ce travail! :) merci –

+0

Génial, je suis content :) Comme récompense tu peux voter pour ma réponse et la marquer comme réponse. Je vous remercie. –

+0

Merci. Et le vote me rendra heureux aussi :) –