Проверьте количество, доступное в корзине, используя цикл while, вложенный в цикл foreach. - PullRequest
0 голосов
/ 07 ноября 2018

Я испробовал метод использования цикла 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>
...