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
展开
 我来答
miniappcy3tv95eaedrf
2019-03-27 · TA获得超过2363个赞
知道大有可为答主
回答量:1909
采纳率:92%
帮助的人:1117万
展开全部

从逻辑上看你的代码是没有问题的。可以使用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关联的上下级
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式