织梦dedecms与DISCUZ整合积分同步会员表,积分表

文章来源:公众号:麻瓜族magua12138 作者:麻瓜君 热度: 2016-07-29 08:48
dedecms,织梦教程,网络营销

 

pre_ucenter_members会员表
pre_common_member_count积分表

最近开发一个平台,使用的dede的cms已经discuz论坛.在整合后发现,uccenter里面的积分兑换功能没有调配成功,如何做到论坛和网站的会员积分是同步的呢?在两者的官网上找了很久也没有找到我想要的东西.只好自己想办法.
在不修改两者代码的基础上,我想到了mysql的触发器.使用触发器的功能不就可以解决了吗?但是后来想了想总觉得有点死循环的意思.dede的修改触发discuz的积分,反正得触发器不是又返回来触发dede了吗?这不是个死循环吗?要我mysql的触发器我可以说是第一次使用.死马当活马医.在本机见了一个测试数据库.试试吧.不试试怎么知道呢?
表 1
bbs_members(论坛用户表)
字段
uid(用户id),extcredits1(积分),extcredits2(金钱)

表 2
dede_member
字段
mid(用户id),scores(积分),money(金钱) 经过一顿调整,原本以为需要4个字段写4个触发器的.只写了2个触发器就解决了.不知道为什么.触发器不是针对字段的吗?怎么针对记录了?我不是很明白,如果你知道,可以告诉我.我保持学习的态度.
废话不说了,放出触发器的代码吧.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
CREATE   TRIGGER   tr_bbs_dede   AFTER   update   ON  bbs_members  
FOR EACH ROW   
BEGIN   
    set @scores='0'; 
    set @money='0'; 
    select scores,money into @scores,@money from dede_member where mid=NEW.uid; 
    if @scores!=NEW.extcredits1 then 
        update dede_member set scores=NEW.extcredits1 where mid=NEW.uid;
   end if; 
    if @money!=NEW.extcredits2 then 
        update dede_member set money=NEW.extcredits2 where mid=NEW.uid; 
   end if; 
END; 
CREATE TRIGGER te_dede_bbs AFTER UPDATE ON dede_member   
FOR EACH ROW   
BEGIN   
    set @extcredits1='0'; 
    set @extcredits2='0'; 
    select extcredits1,extcredits2 into @extcredits1,@extcredits2 from bbs_members where uid=NEW.mid; 
    if @extcredits1!=NEW.scores then 
        update bbs_members set extcredits1=NEW.scores where uid=NEW.mid; 
    end if; 
    if @extcredits2!=NEW.money then 
        update bbs_members set extcredits2=NEW.money where uid=NEW.mid; 
    end if; 
END;

触发器建立后,发现能够实现同步了.不过此方法建议整合开始,双方积分都为0的时候.呵呵.

 

 

若要转载麻瓜君的文章

记得请署名噢...

 

投稿邮箱:

ceo@magua12138.com

 

长按二维码“识别”关注


更多内容请登录:
www.magua12138.com

 

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
回到顶部