while循环第一次迭代不起作用吗?

时间:2018-06-22 14:52:07

标签: php loops do-while

我有一个嵌套的do while循环。选项输入中的第一个循环为空白,下拉菜单中没有选项。第一个循环之后的所有其他循环都可以正常工作。我茫然为何第一个空白,而任何帮助将不胜感激。

FROM shopper s
...
AND EXISTS (SELECT *
            FROM otherTable t
            WHERE t.id = s.id)

2 个答案:

答案 0 :(得分:1)

do while循环的第一次迭代从$row_folders$row_photos返回空值的原因是,直到第一次迭代完成(在while语句)

要解决此问题,可以先分配变量,也可以(通常这样做)使用while循环。

首先定义变量:

$row_folders = mysql_fetch_assoc($folders);
do
{
    // Your code here
}
while ($row_folders = mysql_fetch_assoc($folders));

只需使用while循环

while ($row_folders = mysql_fetch_assoc($folders))
{
    // Your code here
}

答案 1 :(得分:1)

在do while循环中,在执行循环内的语句之后测试条件。 您应该将其更改为WHILE,仅将条件移至顶部以获取第一行 请注意,在第二次迭代中,您将获得第一行,因为在第一次迭代执行中,第一行尚未提取。