私はこのようなテーブルアイテムを持っています:
id_item color stock
1 red,green,yellow 10,20,30
ここにテーブルカート:
id id_trans id_item color qty
1 123 1 red 5
2 123 1 green 2
私が達成したいのは、テーブルアイテムを次のように更新することです:
id_item color stock
1 red,green,yellow 5,18,30
私がしていることは:
$query = mysql_query("select a.color as color, a.stock as stock, b.id_item as id_item,b.color as colors,b.qty as qty from item as a, cart as b where a.id_item = b.id_item and b.id_trans = '123' ");
while($result = mysql_fetch_array($query)){
$colors = $result['colors'];
$color = explode(",",$result['color']);
$stock = explode(",",$result['stock']);
$flag = array_search($colors,$color);
$stock[$flag] = $stock[$flag] - $result['qty'];
$stock = implode(',',$stock);
mysql_query("update item set stock = '$stock' where id_item = '$result[id_item]'");
}
私が上で書いたコードから、私はいくつかの問題を抱えています。私の問題は、結果が次のようになることです:5,20,30&10,18,30。したがって、テーブルアイテムを更新すると、次のように変更されます。
id_item color stock
1 red,green,yellow 10,18,30
私が達成したいのは、在庫が5、18、30になることを内破することです。誰かがそれを達成する方法を教えてもらえますか、または誰かが私のコードに間違っていると教えてもらえますか?どうも