gpt4 book ai didi

php - 整合来自 PHP 购物车的值(value)

转载 作者:行者123 更新时间:2023-12-04 05:10:40 24 4
gpt4 key购买 nike

我有以下问题。

我将购物车存储在 PHP session 中,然后加载它以显示购物车中的商品。

问题是,目前,我看到每个商品都没有合并,这意味着如果一个商品在购物车中添加了 2 次,它将显示两次。

如何通过 itemId 合并结果?

    if(is_array($_SESSION['cart']))
{
$max=count($_SESSION['cart']);
for($i=0;$i<$max;$i++)
{
$pid=$_SESSION['cart'][$i]['itemId'];
$q=$_SESSION['cart'][$i]['qty'];
if($q==0) continue;
$query2 = $con -> prepare("SELECT * FROM item_descr WHERE id_item = :idItem");
$query2-> bindValue (':idItem',$pid);
$query2->execute();
$row2 = $query2->fetch(PDO::FETCH_ASSOC);
?>
<div class="checkoutItems">
<span class='itemNameChck'><?php echo $row2['name']; ?> </a></span>
<span class="itemQtyChck"><?php echo $row2['price']; ?> </span>
<span class="itemQtyChck"><?php echo $q; ?> </span>
<span class="itemQtyChck"><?php $totalPerItem = $q * $row2['price']; echo $totalPerItem; ?> </span>
</div>
<?php
}
}

以下是我将商品添加到购物车的方法:
function addtocart($pid,$q)
{

if($pid<1 or $q<1) return;
if(is_array($_SESSION['cart']))
{

$max=count($_SESSION['cart']);
$_SESSION['cart'][$max]['itemId']=$pid;
$_SESSION['cart'][$max]['qty']=$q;
$max=count($_SESSION['cart']);
}
else
{
$_SESSION['cart']=array();
$_SESSION['cart'][0]['itemId']=$pid;
$_SESSION['cart'][0]['qty']=$q;
$max=count($_SESSION['cart']);

}
//}
}

谢谢

最佳答案

在我看来 - 您必须摆脱包含购物车项目索引的 ID。

//             I mean this
// ||
// ||
// \ /
// \/
$_SESSION['cart'][$max]['qty']=$q;

就放 itemId在那里,在添加项目之前 - 检查是否设置了数组的这个元素。

您编写了这段代码,每次都向数组添加新元素,现在您想要合并。这对我来说毫无意义。仅在必要时添加新元素。否则,只需更新数量。

在我看来,您的购物车应如下所示:
$_SESSION['cart'][$itemid]['qty']=$q;

// example how to store other attributes
$_SESSION['cart'][$itemid]['name']="Rubber duck";
$_SESSION['cart'][$itemid]['color']="Yellow";
$_SESSION['cart'][$itemid]['size']="XXL";
$_SESSION['cart'][$itemid]['price']="1000";

然后,在添加项目时,您可以检查具有该 itemid 的购物车项目是否包含任何元素。
if isarray($_SESSION['cart'][$itemid]) // when exists - add to previous quantity
$_SESSION['cart'][$itemid]['qty']= $_SESSION['cart'][$itemid]['qty'] + $q;
else // else - set quantity
$_SESSION['cart'][$itemid]['qty'] = $q;

这只是一个草稿/想法,但我希望它会帮助你。

关于php - 整合来自 PHP 购物车的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com