демонстрация товара на складе в проекте базовой инвентаризации php - PullRequest
0 голосов
/ 03 сентября 2018

эй, я пытаюсь создать базовый проект инвентаризации, в котором я хочу показать сообщение об отсутствии товара на кнопке "продать товар". в основном в базе данных, если balance_quantity равно 0, тогда запись должна остановиться и отобразить сообщение. пробовал с определением переменной $ balance_quantity = "0"; а также заменяя if и elseif вот мой код.

<?php 

    $db = mysqli_connect('localhost', 'root', '', 'inventory');

    if (isset($_GET['sell'])) {
        $item_id = $_GET['sell'];
        $balance_quantity = $_GET['bal']-1;

        $record = mysqli_query($db, "UPDATE item_master SET balance_quantity=$balance_quantity WHERE item_id=$item_id");

    }

    if(isset($_GET['buy'])) {
        $item_id = $_GET['buy'];


        $quantity =  1;
        $query =  "INSERT INTO transaction (Item_id, quantity) VALUES ($item_id,$quantity)" ;
        mysqli_query($db, $query);  
    }

?>


<td>
    <a href="cart.php?sell=<?php echo $row['item_id']; ?>&bal=<?php echo $row['balance_quantity']; ?>" class="btn">Sell</a>
</td>
<td>
    <a href="cart.php?buy=<?php echo $row['item_id']; ?>" class="btn">Buy</a>
</td>

1 Ответ

0 голосов
/ 03 сентября 2018

Просто предложение: создайте что-то, что получит текущий баланс из БД, и сравните их.

Здесь вы получаете баланс из значения GET. Что, если другой пользователь покупает или продает в то же время?

Пример:

    $db = mysqli_connect('localhost', 'root', '', 'inventory');

    if (isset($_GET['sell'])) {
        $item_id = $_GET['sell'];
        $balance_query= mysqli_fetch_assoc(mysqli_query($db, "SELECT balance_quantity FROM item_master WHERE item_id=$item_id"));

$balance_quantity = balance_query['balance_quantity'];

//Rest of logic. Or even better, make a function that plain returns getBalance($itemId)

    }
...