最初のテーブルのデータを削除するときは、2 番目のテーブルの関連フィールドの値を変更します
Table 0
3 2 80
4 3 50
table vip
vip 1 1000
2 500
3 800
$sql = " から削除します。 $ fdyu->table('xf') .
" WHERE xf_id " 。 db_create_in(join(',', $_POST['checkboxes'])) . 1,2,3,4
“ AND school_id= . $school_id;
$db->query($sql) ;
次に、xf_id を削除するときに、テーブル内の vip
1 jifen=1000-110=890 xf に同じ vip が複数ある場合は、合計を減算します。たとえば、データが 2 つあります。 xf テーブルの vip 1 の合計は 110 です。
次に 110 を引きます
2 jifen=500-80=420
3 jifen=800-50=750
つまり、テーブル xf のデータを削除するとき、テーブル vip の jifen をテーブル xf から減算する必要があります。 Total
------解決策---------------- -----
一般的な考え方
1. まず、削除するレコードの vip と各 vip の削除された合計スコアを取得しますselect vip,sum(total) from xf where xf_id in(1,2,3,4) by vip でグループ化;
配列として保存
vip はキー
合計は値
$arr = array(
'1' => 110,
'2' => 80,
'3' => 50
);
2 に対応するレコードを削除します。 >delete from xf where xf_id in(1,2,3,4);
3. vip テーブルを変更します
foreach($arr as $vip=>$total){
vip を更新しますset jifen=jifen-$total where vip=$vip
}
-----解決策------ --
MYSQL でトリガーを使用して実行することを検討できます。例: