我已经尝试了使用购物车中的foreach循环来调整库存物品数量的方法,如果客户超出了可用的数量,则该购物车将通知用户这些物品已经供不应求。 / p>
问题是通知卡在$ item ['qty']处,数组中项目的数量将仅迭代开始时设置的一个值,并且在循环期间不会迭代以下任何操作价值观。
在此错误的if语句嵌套在功能正常的while循环中if($ item ['qty']> $ numbers ['Stock'])
不过,$ numbers ['stock']仍然有效,并且会在foreach循环中的每次迭代中更新。
但是,$ item ['qty']不会在foreach循环中的每次迭代中更新。 因此,对于每个变化的存货柜台,每个$ cartItems的第一个$ item都会停留在$ item ['qty']。
对于解决此查询的任何帮助,我们深表感谢,并且到目前为止,演示一个简单的带有存入或存货的回显线就足够了,无需担心任何HTML内联脚本或javascript。
谢谢,这是代码。
$itemSpot = $_SESSION['cart'];
print_r($itemSpot);
$whereIn = implode(',', $itemSpot);
$sql = "SELECT * FROM products WHERE id IN ($whereIn)";
$amountQuery = $db->query($sql);
$stocking_error = [];
// print_r($cartItems);
$cartItems = $cart->contents();
foreach($cartItems as $item){
while($numbers = $amountQuery->fetch_assoc()){
echo " Stock available ". $numbers['Stock'] . "<br>";
echo "this is the quantity of the item " . $item['qty'];
echo $item['name'];
if($item['qty'] > $numbers['Stock']){
$stocking_error = $numbers['Stock'];
echo " <br> Amount ordered exceeds quantity available: " . print_r($stocking_error);
// echo $stocking_error;
}
}
}
if(($stocking_error) != 0) { ?>
<td><a href="checkout.php?id=<?php echo $item["rowid"];?>" class="btn btn-success btn-block">Checkout<i class="glyphicon glyphicon-menu-right"></i></a></td>
<?php } else {
echo "Stocking error";
} ?>
<?php } ?>
</tr>