0

所以我正在尝试更新我的 2 个表:Invoice 和 Order_Table。我希望它更新每个表中的新数量和新价格,但仅限于特定的 OrderID。我想出了这个:

$UpdateQuant = "UPDATE Order_Table SET Quantity = '$NewQuant' WHERE OrderID = '$OrderID' ";
$UpdateQuant = mysql_query($UpdateQuant);

$UpdatePrice = "UPDATE Order_Table SET TotalCost = '$NewPrice' WHERE OrderID = '$OrderID' ";
$UpdatePrice = mysql_query($UpdatePrice);


//Update Invoice Table
$UpdateQuant = "UPDATE Invoice SET Quantity = '$NewQuant' WHERE OrderID = '$OrderID' ";
$UpdateQuant = mysql_query($UpdateQuant);                   

$UpdatePrice = "UPDATE Invoice SET TotalCost = '$NewPrice' WHERE OrderID = '$OrderID' ";
$UpdatePrice = mysql_query($UpdatePrice);

但是,当我执行此操作时,它会更新每一行。我不明白为什么会发生这种情况,因为我正在使用 WHEREOrderID = '$OrderID'

4

1 回答 1

0

在您执行之前回显 SQL,也许变量中没有您期望的东西。否则,每条更新的记录都必须具有相同的 orderID。

此外,正如他在评论中指出的那样,只有字符串应该用引号封装,数字类型不应该有它们:

您还可以将运行的查询组合成一个查询,如下所示:

$UpdateQuant = "UPDATE Order_Table SET Quantity = $NewQuant, TotalCost = $NewPrice WHERE OrderID = $OrderID ";
$UpdateQuant = mysql_query($UpdateQuant);

它将前两个查询组合在一起,您可以对后两个查询进行同样的操作。

于 2013-11-07T01:00:26.997 回答