Php 函数inside while函数inside while每层只触发一次
考虑一下这个(简化的)代码。。。函数getLevelOne被调用,运行正常,调用getLevelTwo,运行正常,然后停止,而不继续在getLevelOne中调用的过程。。。按照它的编写方式,您假设第二个函数将为$list1(2,4,5,6)中的每个数字调用。。。我错过什么了吗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
$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获得胜利。谢谢你,先生。