thinkphp中的foreach循环使用错误,获取不到数据
$xusers=M('member')->where(['parentid'=>12345])->field('id')->select();foreach($xuser...
$xusers = M('member')->where(['parentid'=>12345])->field('id')->select();
foreach ($xusers as $key => $value) {
$pid1=($xusers[$key]['id']);
$xusers[$key]['erid']=M('member')->where(['parentid'=>$pid1])->field('id')->select();
}
语句如上
xusers是获取邀请码为12345的所有用户
然后我用foreach来循环xusers中的id从而获得该用户的下面用户
比如
a的id是12345邀请码是空
A的id是12346邀请码是12345
B的id是12347邀请码是12345
c的id是12348邀请码是12347
d的id是12349邀请码是12348
那么如何通过上面的循环找出
和A有直接以及间接关系的所有用户
也就是我通过上面循环找出
所有ABCD的用户ID 展开
foreach ($xusers as $key => $value) {
$pid1=($xusers[$key]['id']);
$xusers[$key]['erid']=M('member')->where(['parentid'=>$pid1])->field('id')->select();
}
语句如上
xusers是获取邀请码为12345的所有用户
然后我用foreach来循环xusers中的id从而获得该用户的下面用户
比如
a的id是12345邀请码是空
A的id是12346邀请码是12345
B的id是12347邀请码是12345
c的id是12348邀请码是12347
d的id是12349邀请码是12348
那么如何通过上面的循环找出
和A有直接以及间接关系的所有用户
也就是我通过上面循环找出
所有ABCD的用户ID 展开
展开全部
从逻辑上看你的代码是没有问题的。可以使用var_export 输出一下最终的$xusers 看下是否是你要的数据
$xusers = M('member')->where(['parentid'=>12345])->field('id')->select();
foreach ($xusers as $key => $value) {
$pid1=($xusers[$key]['id']);
$xusers[$key]['erid']=M('member')->where(['parentid'=>$pid1])->field('id')->select();
}
var_export($xusers);
输出的格式应该类似
array(
array(
'id'=>123458,
'erid'=>array(
array(
'id'=>221451
),
array(
'id'=>221452
),
),
),
array(
'id'=>123457,
'erid'=>array(
),
),
array(
'id'=>123457,
'erid'=>array(
array(
'id'=>221453
),
),
),
)
追问
我就循环了第一段的结果 就没了 只能查询到ID的直接下一级的
追答
thinkphp有日志,可以从日志里看下这个步骤中查询最终生成的sql,
用这些sql直接去数据库里查看看有没有问题。
顺便检查一下数据库里是否有二层会员,是否以id关联的上下级
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询