Php 函数inside while函数inside while每层只触发一次

Php 函数inside while函数inside while每层只触发一次,php,mysql,function,while-loop,Php,Mysql,Function,While Loop,考虑一下这个(简化的)代码。。。函数getLevelOne被调用,运行正常,调用getLevelTwo,运行正常,然后停止,而不继续在getLevelOne中调用的过程。。。按照它的编写方式,您假设第二个函数将为$list1(2,4,5,6)中的每个数字调用。。。我错过什么了吗 $list1 = "2,4,5,6"; $table1 = 'thistable'; getLevelOne($list1, $table1); function getLevelOne($list1, $table1

考虑一下这个(简化的)代码。。。函数getLevelOne被调用,运行正常,调用getLevelTwo,运行正常,然后停止,而不继续在getLevelOne中调用的过程。。。按照它的编写方式,您假设第二个函数将为$list1(2,4,5,6)中的每个数字调用。。。我错过什么了吗

$list1 = "2,4,5,6";
$table1 = 'thistable';
getLevelOne($list1, $table1);

function getLevelOne($list1, $table1){
    $q = "select * from $table1 where id IN ('$list1')";
    $r = mysqli_query($db, $q);
    while($row = mysqli_fetch_array($r)){
        echo 'oh';
        $table2 = 'nexttable';
        $list2 = $row[$table2];
        getLevelTwo($list2, $table2);
    }

}

function getLevelTwo($list2, $table2){
    $q2 = "select * from $table2 where id IN ('$list2')";
    $r2 = mysqli_query($db, $q2);
    while($row2 = mysqli_fetch_array($r2)){
        echo 'shit';
    }
}

这就是你使用的代码吗?或者你在粘贴到这里时更改了它?不,实际的代码要长得多,有很多回声和ifs等等,但归结到最基本的功能,这就是它的要点。。。我肯定这里有语法错误,我很快就输入了,但是这不是真正代码的语法问题。代码嵌套了大约5个while/函数,并在所有函数中运行了一次,但从未返回到原始while…当您注释
getLevelTwo
out时,它会继续吗?或者换句话说,您是否选择了多行?请检查您的SQL。。。您真的想要
从此表中选择*,其中id位于('2,4,5,6')
?或者
从此表中选择*,其中(2,4,5,6)中的id
?Eleazan获得胜利。谢谢你,先生。