【问题标题】:while loop runs only in the first iteration of foreach loopwhile 循环仅在 foreach 循环的第一次迭代中运行
【发布时间】:2016-06-19 23:02:24
【问题描述】:

我正在尝试在 for 循环内循环,但 while 循环仅在 for 循环的第一次迭代中进行迭代,之后我只得到了 while 循环外的任何东西才能工作,但留在这里我的代码任何帮助都会很棒。谢谢

if(mysqli_affected_rows($obj->conn)>0){             
    foreach ($dateGroup as $value) {
        while($fetchdata=mysqli_fetch_array($selectdata))
            {
                echo 'executing while <br>';
            }
            echo "<b>executing foreach</b><br>";
    }
}           

【问题讨论】:

  • 因为在第一次迭代之后,您获取了所有数据,而在第二次 foreach 循环迭代中,没有更多数据可获取。

标签: php loops foreach while-loop


【解决方案1】:

首先 - 你应该重新尝试将你的问题分成更易于理解的方式 - 使用更多的句子、逗号、问号等。这可能真的很难理解你的问题。

其次,您实际上应该提出一个问题,而不仅仅是就可能包含谁知道什么细节的代码寻求帮助。

在您的情况下,while 循环括号内的表达式会获取一次数据,之后不再获取数据。这就是为什么您的 while 循环只执行一次的原因。你应该在这里重新考虑你的设计,代码提案,在我看来是不相关的。

【讨论】:

  • 我很抱歉没有错误地提出这个问题,但经过数小时的头撞后,我确实得到了答案,感谢您提出的建议,下次我会继续寻找答案
  • 不用道歉,伙计!我没有问题,这是你的问题。您应该知道,您对问题和问题的解释越好 - 获得有效解决方案或好的答案的可能性就越大。如果我能够帮助您解决您的问题 - 那我很高兴 :)
最近更新 更多