删除第一张表的数据时,修改第二张表的相关字段的数值
表xf
xf_id vip total
1 1 10
2 1 100
3 2 80
4 3 50
表vip
vip jifen
1 1000
2 500
3 800
$sql = "delete from " . $fdyu->table('xf') .
" WHERE xf_id " . db_create_in(join(',', $_POST['checkboxes'])) . //假如$_POST['checkboxes']就是xf_id:1,2,3,4
" AND school_id=" . $school_id;
$db->query($sql);
那么在删除xf_id的同时,表vip里的
1 jifen=1000-110=890 如果xf里有多个一样的vip,则减去总和,如xf表里vip为1的有两条数据,他们的total和是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) group by vip;
保存为数组
vip为key
total为value
$arr = array(
'1' => 110,
'2' => 80,
'3' => 50
);
2.删除对应xf_id的记录
delete from xf where xf_id in(1,2,3,4);
3.修改vip表
foreach($arr as $vip=>$total){
update vip set jifen=jifen-$total where vip=$vip
}
------解决方案--------------------
可以考虑用触发器,在MYSQL执行,给你一个例子:
create trigger delete_jifen before delete on jifen
for each row
BEGIN
UPDATE users SET users.sum = users.sum -
(SELECT sum(jifen.jifen) from jifen WHERE jid = old.jid) where users.userid = old.userid;
END
相关课程推荐
《javascript初级视频教程》是JavaScript的入门课程,旨在让大家认识,了解JavaScript的常见概念
jQuery 很容易学习,希望通过我们的《jquery 基础视频教程》可以帮助大家来更好的学习jQuery。 jQuery 是一个 JavaScript 库,简化了 JavaScript 编程。
jQuery教程36130次播放
《javascript三级联动视频教程》介绍了javascript开发的三级联动功能,该功能在日常使用中还是经常能用的到的一个。
javascript是运行在浏览器上的脚本语言,连续多年,被评为全球最受欢迎的编程语言。是前端开发必备三大法器中,最具杀伤力。如果前端开发是降龙十八掌,好么javascript就是第18掌:亢龙有悔。没有它,你的前端生涯是不完整的。《php.cn独孤九贱(3)-JavaScript视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了javascript知识。
jQuery是一个快速、简洁的JavaScript框架。设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等,是全球最流行的前端开发框架之一。PHP中文网根据最新版本,独家录制jQuery最新视频教程,回馈PHP中文网的新老用户。
jQuery教程83264次播放
全部评论我要评论
取消发布评论发送
发布
1/1