如何防止使用后插入触发器后股票价值为负



我在这里有一个问题,我输入了购买的商品数量多于我拥有的库存,所以输出是数据减去示例"-1"。我有源码json php下面你能帮我改进我的程序,这样我就会被通知"购买的物品缺货">

<?php
if($_SERVER['REQUEST_METHOD']=='POST') {
date_default_timezone_set("Asia/Jakarta");
$timestamp = date('H:i:s');
$tanggal = date('Y-m-d');
$response = array();
//mendapatkan data

$id_barang = $_POST['id_barang'];
$nm_barang = $_POST['nm_barang'];
$stokk = $_POST['stokk'];
$nm_pegawai = $_POST['nm_pegawai'];



require_once('dbConnect.php');  
$sql2 ="SELECT * FROM stok where id_barang='$id_barang'";

$res = mysqli_query($con,$sql2);

while($row = mysqli_fetch_array($res)){
$tokavailable = $row['stokk'];
}

if( $stokavailable >=$stokk ){
$response["value"] = 0;
$response["message"] = "oops! Item purchased is out of stock!";
echo json_encode($response);


}else{
$sql = "INSERT INTO keluar (id_barang,nm_barang,nm_pegawai,stokk,waktu,tanggal) VALUES('$id_barang','$nm_barang','$stokk','$nm_pegawai','$timestamp','$tanggal')";

if(mysqli_query($con,$sql)) {
$response["value"] = 1;
$response["message"] = "successful buying";
echo json_encode($response);
} else {
$response["value"] = 0;
$response["message"] = "oops! try Again";
echo json_encode($response);
} 
}

}
// tutup database
mysqli_close($con);

问题出在IF语句上。

  1. 变量美元stokavailable$tokavailable不存在(您有打字错误,您将其声明为)),因此无法进行比较。

  2. 要缺货,必须将条件更改为

    $ stock>= $stokavailable

所以你的库存中没有足够的物品…

这样,它应该工作;)

最新更新