如何使用php和sql更新动态行数的单个列?

如何使用php和sql更新动态行数的单个列?,php,sql,Php,Sql,编辑-免责声明:PHP和SQL上的Noob 我需要根据所选的蔬菜,从每个数量行中减去不同的值 例如:如果用户选择西红柿和辣椒,我需要分别从这些数量中减去200和400 有没有办法将这些值附加到蔬菜上? 我有一个如下所示的数组: **数组([0]=>番茄[1]=>洋葱[2]=>菠菜** IngCreditStable +----+-------------+---------+--------+-------+ |id |名称|类型|金额|单位| +----+-------------+----

编辑-免责声明:PHP和SQL上的Noob

我需要根据所选的蔬菜,从每个数量行中减去不同的值

例如:如果用户选择西红柿和辣椒,我需要分别从这些数量中减去200和400

有没有办法将这些值附加到蔬菜上? 我有一个如下所示的数组:

**数组([0]=>番茄[1]=>洋葱[2]=>菠菜**

IngCreditStable

+----+-------------+---------+--------+-------+
|id |名称|类型|金额|单位|
+----+-------------+---------+--------+-------+
|1 |西红柿|蔬菜| 1000 |克|
|2 |洋葱|蔬菜| 1000 |克|
|3 |菠菜|蔬菜| 1000 |克|
|4 |辣椒|蔬菜| 1000 |克|
|5 |罗勒|蔬菜| 1000 |克|
+----+-------------+---------+--------+-------+

我在PHP中有一个蔬菜数组。我正在考虑迭代该数组并基于该蔬菜更新列。因此可能:

foreach($vegetable as $subject) 
     ($query = $conn->prepare("UPDATE ingredients set amount = amount - ? where `name` = '$item';"))
     $query->bind_param("i", $amount);
     $query->execute();
     $insertresult = $query->get_result();
`
问题是,我不知道如何更改$amount,我知道这段代码根本不减去值

目前,我已经将$amount硬编码为200,但我不想只将每行的金额更新为200。我需要它从当前值中减去200,在本例中为1000,因此为1000-200,并将值更新为800。对于辣椒,我需要减去400

我已经看过了,但这似乎不是动态的。它假设我们事先知道要更改哪些行,以及最终的值是什么

编辑:我刚刚检查了一下,我认为它解决了减法的问题,但它没有解释如何在PHP中将这些值与蔬菜联系起来。示例:如何获取并将200个值与西红柿联系起来,将400个值与辣椒联系起来


编辑2:更新代码以减去值并更正语法,澄清问题。

答案是修改我获取数据的方式。因此:

我需要更改名称和值属性:


减法是一个简单的sql查询,在这里回答。

可能重复感谢,我认为这有助于减法值部分。你知道如何将金额绑定到每个循环的蔬菜值吗?是否有方法创建蔬菜和金额的键值对?我目前将蔬菜作为关联数组。也就是说不是更新的工作原理。请阅读有关此函数的文档-您现在拥有的类似于INSERT的功能。您还将通过不使用WHERE子句来更新整个表。是的,我刚刚意识到语法完全错误。我将更新此帖子。