демонстрация товара на складе в проекте базовой инвентаризации php

эй, я пытаюсь сделать базовый проект инвентаризации, в котором я хочу показать сообщение об отсутствии товара на кнопке «продать товар». в основном в базе данных, если 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>

0

Решение

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

Здесь вы получаете баланс из значения 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)

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]