Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 停止向表中插入值_Php_Mysql - Fatal编程技术网

Php 停止向表中插入值

Php 停止向表中插入值,php,mysql,Php,Mysql,我有两张桌子。一个是项目表,另一个是问题表。 问题表使用外键引用项\ id 我正在使用出库表向我的员工出库商品,并将商品数量扣除到我的商品表中。发布项目并扣除项目表上的数量没有问题,我想要的是当数量为零时,员工姓名将停止向发布表插入值。因为每次我尝试发出时,值都会插入到发出表中,即使项目表中的数量为零 if row is greater than zero, do not proceed. else insert it to this table. 希望你能理解。粗略地说 $con=mysql

我有两张桌子。一个是项目表,另一个是问题表。 问题表使用外键引用项\ id

我正在使用出库表向我的员工出库商品,并将商品数量扣除到我的商品表中。发布项目并扣除项目表上的数量没有问题,我想要的是当数量为零时,员工姓名将停止向发布表插入值。因为每次我尝试发出时,值都会插入到发出表中,即使项目表中的数量为零

if row is greater than zero, do not proceed. else insert it to this table.
希望你能理解。

粗略地说

$con=mysqli_connect(SERVER, DBUSER, DBPASS, DATABASE);

// Check connection
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT quantity FROM item  WHERE item_id = 1;";
$result = mysqli_query($con,$sql);

$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
if($row["quantity"] > 0) {
    //insert
}
DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table (id SERIAL PRIMARY KEY,balance INT NOT NULL);

INSERT INTO my_table VALUES (1,100);

INSERT INTO my_table (balance) SELECT MIN(balance-50) FROM my_table HAVING MIN(balance-50) >= 0;

SELECT * FROM my_table;
+----+---------+
| id | balance |
+----+---------+
|  1 |     100 |
|  2 |      50 |
+----+---------+

INSERT INTO my_table (balance) SELECT MIN(balance-50) FROM my_table HAVING MIN(balance-50) >= 0;

SELECT * FROM my_table;
+----+---------+
| id | balance |
+----+---------+
|  1 |     100 |
|  2 |      50 |
|  3 |       0 |
+----+---------+

INSERT INTO my_table (balance) SELECT MIN(balance-50) FROM my_table HAVING MIN(balance-50) >= 0;

SELECT * FROM my_table;
+----+---------+
| id | balance |
+----+---------+
|  1 |     100 |
|  2 |      50 |
|  3 |       0 |
+----+---------+

请张贴您的密码。当($row=mysqli\u fetch\u assoc($result)时,
JOIN
CASE
函数可能会有帮助你应该让MySQL用一个函数来处理这个问题。如果你想得到帮助,你应该显示你的表结构和数据。你可以使用触发器,也可以在INSERT本身中包含约束。嗨,谢谢你的支持。现在已经解决了。太好了。接受答案,或者自己提供答案,然后接受,或者删除这个问题