Я попробовал метод использования цикла foreach в корзине для корректировки количества товаров на складе, если покупатель превышает количество, доступное в корзине, чтобы уведомить пользователя о том, что товаров нет на складе.
проблема в том, что уведомление застряло в $ item [‘qty’], количество элементов в массиве будет повторять только одно значение, заданное в начале, и в течение цикла не будет повторять ни одно из следующих значений.
в этом ошибочном операторе if вложен в функционирующий цикл while if ($ item [‘qty’]> $ numbers [‘Stock’])
Тем не менее, $ numbers [‘stock’] работает и будет обновляться для каждой итерации в цикле foreach.
Однако $ item [‘qty’] не будет обновляться для каждой итерации в цикле foreach.
Таким образом, для каждого изменяющегося счетчика акций $ item [‘qty’] прикрепляется к первому $ item для каждого $ cartItems.
Любая помощь в решении этого запроса высоко ценится, и на данный момент достаточно продемонстрировать простую линию эха с входным или выходным запасом, никаких проблем для любого встроенного сценария 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>
Задача ещё не решена.
Других решений пока нет …