2011-12-29 4 views
0

2つのmysqlカラムの違いの結果を更新したいカラムがあります。私の場合はそれが唯一の1。これは私が数値でQuantity_Committedを交換した場合、すべての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');} 

で一貫していない私が使用していますmysqlのクエリされることができ、私は、コードが続くすなわち欲しいものを手に入れます。しかし、それをそのまま残すと、私は適切な$数の数字(1)を取得しますが、それは失敗すべきである「makassi」をエコーすることによっても失敗します。

これは2つのmysqlカラムを減算する不適切な方法ですか、これはphp mysqli apiのバグですか? これは本当に私にとって困惑しています!!助けてください

+0

phpmyadminを使用してクエリを実行するか、またはあなたが気にしているものを実行します。 – Starx

+0

なぜ「Quantity_Available」列が別途必要になるのでしょうか? **(Quantity - Quantity_Committed)をQuantity_Available **として使用することができます。 –

+0

@SomnathMuluk、それは私が最初から言おうとしていることです。 – Starx

答えて

1

これはあなたがやろうとしている悪い習慣です。データベース内の列が既に列にある別の列から派生している場合。その後、そのような冗長性を作成するデータベースです。すべてのデータベースを可能な限り正規化する必要があります。データの正規化については、hereをお読みください。

あなたがしようとしていることは、はるかに良い方法で達成することができます。

のように、レコード

SELECT * FROM items WHERE Quantity - Quantity_Column > 5 

をフィルタリングまたは、利用可能量を取り出します。

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

本当に、あなたのテーブルのフィールドは他の2つのフィールドから派生していて、テーブルデータが冗長ではないことを私に伝えています。そして、1フィールド(quantity_available)は2(quantity-quantity_committed)フィールドの減算の影響を受けるということが起こります。あなたはあなたの質問のどこで、私がインプレッションを???? – Starx

+0

彼は別の2つの列から列を更新したいと同時に、話そうとしているものはどちらも無関係です。質問との関係はありますか? –

+0

@SomnathMulukはい、あります。悪い習慣に従っているので、疑問が生じます。私はこの質問が最初に存在すべきではないので、OPが何を求めているか答えていない。 – Starx

関連する問題