-1

私たちのカート プロセスでは、支払いゲートウェイがクレジット カード購入の承認済みコードを返すまで、ストアの在庫からアイテムを削除したくありません。したがって、支払いが承認されたと仮定すると、カートのアイテムを在庫から差し引く必要があります。

mysqli UPDATE クエリで、設定されている新しい値が行の現在の値の結果、つまりカートの Item_qty フィールドに格納されている数量になるように、可能であればどのように記述できますか?

mysqli_query($con,"UPDATE table1 SET Qty='`**current-value**` - $proc[Item_Qty]' WHERE buyer='$user'");

複数のクエリを使用してこれを達成し、いくつかの計算を実行してから値をデータベースに書き戻すことができることは理解していますが、単一の mysqli クエリですべてを実行することにより、より少ないコードでよりクリーンな方法があることを願っています。

4

3 に答える 3

2

更新でテーブルの現在の値を使用できます。

mysqli_query($con,"UPDATE table1 SET Qty = Qty - $proc[Item_Qty] WHERE buyer='$user'");
于 2013-07-26T15:47:10.490 に答える
2

簡単。計算でフィールド自体を使用できます。

UPDATE table1 SEt Qty=Qty - $proc[Item_Qty]
                      ^^^--- this is 100% perfectly valid
于 2013-07-26T15:47:55.490 に答える
1

これはそれを行う必要があります:

$query = "UPDATE table1 SET Qty = Qty - $proc[Item_Qty] WHERE buyer='$user'";

単純に、フィールド名を再度使用して現在の値を取得しています。

于 2013-07-26T15:47:31.903 に答える