2011-12-29 58 views
0

我有一列要更新2個mysql列之間的差異結果並計算有多少行受到影響。在我的情況下,它只能是1,這是MySQL查詢我使用的是不相符的所有mysqli_affected_rows,mysql減去2列錯誤

$connection->query("UPDATE items SET Quantity_Available = Quantity - Quantity_Committed WHERE Item_ID = '$itemid'"); 
if($count=$connection->affected_rows!=1){echo $count;die('makassi');} 

如果我用一個數值代替Quantity_Committed,我得到了我想要的即代碼繼續什麼。然而,如果我放棄它,我會得到正確的$ count數字(1),但它也不能迴應'makassi',它不應該這樣做。

這是一個不正確的方法減去2個mysql列或這是一個PHP mysqli api中的錯誤? 這真讓我莫名其妙!請幫助

+0

使用phpmyadmin運行查詢,或者你熟悉的東西。 – Starx 2011-12-29 09:18:53

+0

爲什麼要單獨要求「Quantity_Available」列。您可以使用**(Quantity - Quantity_Committed)作爲Quantity_Available **。 – 2011-12-29 09:21:07

+0

@SomnathMuluk,這是我自從開始就想說的。 – Starx 2011-12-29 09:23:02

回答

1

這是一個不好的做法,你正在嘗試做什麼。如果數據庫中的列是從列中已有的另一列派生的。那麼創建冗餘就是數據庫。所有數據庫應儘可能標準化。請閱讀有關數據標準化的here

無論你想要做什麼都可以以更好的方式實現。像

過濾記錄

SELECT * FROM items WHERE Quantity - Quantity_Column > 5 

或者,可檢索的數量。

SELECT (Quantify - Quantity_Column) as `Quality_Available` from items 
+0

真的,表中的一個字段是從另外兩個字段派生的,而且您告訴我表格數據不是多餘的。而'恰巧1字段(quantity_available)受到2(quantity-quantity_committed)字段減法的影響。「並且你想知道你的問題在哪裏,我得到了印象? – Starx 2011-12-29 09:02:10

+0

他想從另外兩列更新專欄,你想說什麼都不相關。與問題有任何關係嗎? – 2011-12-29 09:03:05

+0

@SomnathMuluk,是的,出現這個問題是因爲它跟隨不好的做法。我不回答OP的要求,因爲這個問題不應該首先存在。 – Starx 2011-12-29 09:07:05