ホームページ  >  記事  >  バックエンド開発  >  最初のテーブルからデータを削除するときは、2 番目のテーブルの関連フィールドの値を変更します

最初のテーブルからデータを削除するときは、2 番目のテーブルの関連フィールドの値を変更します

WBOY
WBOYオリジナル
2016-06-13 12:01:041335ブラウズ

最初のテーブルのデータを削除するときは、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 でトリガーを使用して実行することを検討できます。例:

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。