使用嵌套在foreach循环中的while循环检查购物车中可用的金额

时间:2018-11-07 16:42:10

标签: php mysql loops cart commerce

我已经尝试了使用购物车中的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>

0 个答案:

没有答案