我在更新多行时遇到问题。我想要做什么的意图是更新所有共享公用变量的行,从而增加一个计数器。在单个查询中更新多行
表看起来是这样的:
table name: Inventory
id item rep onhand
1 Screw Bob 1
2 Bolt Paul 3
3 Nail Bob 4
4 Brace Jen 2
5 Glue Bob 12
我所试图做的是让所有的现有量的鲍勃由1
增加选择查询:
$query = "SELECT * FROM `Inventory` WHERE (rep='Bob')";
$result = mysql_query($query) or die;
$data=mysql_fetch_array($result);
$onhand=$data[onhand];
更新查询:
$query = "UPDATE `Inventory` SET onhand=($onhand+1) WHERE (rep='Bob')";
$result = mysql_query($query) or die;
会发生什么情况是螺丝确实会更新到2,但每个连接到鲍勃的其他人也更新到值2而不是他们的值+1。看起来正在发生的是它将第一个记录中找到的第一个值(id#1)和更新所有其他记录(其中Bob用该值记录)。
这怎么解决?
谢谢你的回应。我试过了,它改变了所有的第一行的新值。 – 2014-09-26 18:41:37
好的,让我们来看看它的底部并修复它。 1)根本不需要选择。请删除。 2)请使用具有正确的SQL更新声明的最新代码更新您的问题,我会看一看。 – 2014-09-26 19:56:26
好吧,当你说删除选择我改变了这一行:$ query =“UPDATE'Inventory' SET onhand =($ onhand + 1)WHERE(rep ='Bob')”; to $ query =“UPDATE'Inventory' SET onhand =(onhand + 1)WHERE(rep ='Bob')”;
和一切工作,感谢您的帮助。 :) – 2014-09-27 15:48:40