购买过php,【已解决】PHP项目需求:用户购买商品时,给上级发送一条通知(无限级下级会员)...
無限級的過程
上下級會員關(guān)系通過id和pid確定。
例如:a>b>c>d>e>f>g...
就是a的下級是b,b的下級是c,c的下級是d....(有點類似傳*銷模式?無視掉)
需求,通過用戶g查出所有的上級,則要查到f.e.d.c.b.a這些用戶id
方可給這些上級發(fā)送通知。
我們最重要的是取出上級id然后就好辦多了。
首先說明幾個值,user_id 為用戶表中的用戶id,parent_id為表中用戶的上級id。
示例一條基本的查詢父級idSQL。
SELECT parent_id FROM cx_user WHERE user_id = 10;##查詢user_id為10的上級id
不說廢話了,直接進入中心。
打開MySQL開始寫存儲過程。 DROP PROCEDURE IF EXISTS `getpid`;CREATE DEFINER = `root`@`localhost` PROCEDURE `getpid`(IN `id` int)BEGINSET @pid:=id;#id為查詢的參數(shù) 即當前用戶idSET @pidarr:=''; #查詢到的上級數(shù)組字符串recursion:WHILE @pid!=0 DO SELECT parent_id INTO @pid from cx_users WHERE user_id = @pid;#這里是你查詢的SQL語句 @pid是動態(tài)id IF @pid=0 THEN #到0即結(jié)束 LEAVE recursion; END IF; IF LOCATE(@pid,@pidarr)>0 THEN #防止出現(xiàn)上下級關(guān)系混亂 LEAVE recursion; END IF; set @pidarr = concat(@pidarr,@pid); set @pidarr = concat(@pidarr,',');END WHILE recursion;SELECT @pidarr AS pidarr;END;
存儲過程執(zhí)行結(jié)果,拿圖嚇唬嚇唬你。
PHP端demo $sql = "CALL getpid(104);";$pidstr = mysql_query($sql);//換成你項目中執(zhí)行MySQL的函數(shù)即可 然后取出 pidarr的值到$pidstr$pidstr = rtrim($pidstr,',');//剔除最右側(cè)多余英文逗號$pidarr = explode(',',$pidstr);//到數(shù)組//以下隨意 #ncSJI$@CO3N#@329090*(@@()$u)@j(@(h(@jn9NCD9823N892
總結(jié)
以上是生活随笔為你收集整理的购买过php,【已解决】PHP项目需求:用户购买商品时,给上级发送一条通知(无限级下级会员)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 函数matlab,Matlab函数
- 下一篇: 功率谱估计性能分析及matlab仿真,功