Обновление количества продукта в базе данных после успешного выполнения заказа

#php #mysql #database #cart #product-quantity

#php #mysql #База данных #Корзина #количество товара

Вопрос:

Я создаю функциональность корзины в своем проекте. Все работает отлично, но я сталкиваюсь с ошибкой при обновлении доступного количества продукта каждого заказанного продукта по идентификатору продукта. Я получаю идентификатор, но я могу понять, как получить доступное количество продукта из баз данных каждого продукта.

Мой код

         $pid = array();
        foreach ($_POST['product_id'] as $proid => $pidvalue) {
        $pid[] .=  $pidvalue;
        }
        $product_id = implode(', ', $pid);
        // ==========================================


        $pquantity = array();
        foreach ($_POST['product_quantity'] as $pq => $pqvalue) {
        $pquantity[] .=  $pqvalue;
        }
        $product_quantity = implode(', ', $pquantity);
        // ==========================================



        // I am using static value 
        // How can I get the dynamic value



        // Trying  to Run Update Query
        for ($i = 0; $i < (count($_SESSION['shopping_cart'])); $i  ) {        


        $quantity_after_order[] = 15 - ($pquantity[$i]);

        $update = array();

        foreach ($_POST['product_id'] as $up => $upvalue) {
        $update[] .= "UPDATE product SET pquantity = '$quantity_after_order[$i]' WHERE pid={$upvalue} " . " 
        <br>";
        }
        }
        

        "<br>" . print_r($update)  . "<br>";
 

Вывод:

             Array ( [0] => UPDATE product SET pquantity = '4' WHERE pid=7
            [1] => UPDATE product SET pquantity = '4' WHERE pid=32
            [2] => UPDATE product SET pquantity = '4' WHERE pid=20
            [3] => UPDATE product SET pquantity = '4' WHERE pid=31
            )
 

Комментарии:

1. Здравствуйте. Пожалуйста, уточните свой вопрос. Или вы просто спрашиваете, как подключиться к БД и получить количество для конкретного продукта ( SELECT pquantity FROM product WHERE pid=... )?

2. Я выбираю количество из базы данных, но приходит только последнее значение. Я хочу выбрать количество в соответствии с pid. Продукт каждого количества, которое пользователь заказывает, обновляется после успешного выполнения заказа.

3. Я не вижу этого в коде (только UPDATE ... есть), но убедитесь, что вы выполняете только одну команду SQL за раз. Т.е. Нет SELECT ...; SELECT ...; , но только SELECT... .

4. теперь моя проблема решена, спасибо за вашу помощь. Я запускаю цикл while в цикле for, который выбирает pquantity из базы данных и выдает запрос на обновление после вычитания из количества заказа