首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php循环- while或do while?

php循环- while或do while?
EN

Stack Overflow用户
提问于 2015-11-19 18:27:09
回答 2查看 1.3K关注 0票数 1

我仍然是PHP和pgsql的新手。一般情况下,这是编码的新手。我正在试着弄清楚我是应该对这个问题进行while循环还是do while循环。

我需要查询一个远程数据源来获取数据并更新我的数据库,但我受到每次调用返回次数的限制。我有超过1000行要更新,但我的调用限制是100。这意味着我需要进行多次调用,直到一列中的所有行都不再为空。

我相信这是正确的查询,但是我的while语句正确吗?

下面是我的代码:

代码语言:javascript
复制
// $dbconn = connection......
$result = pg_query($dbconn, "WITH data(full_address) AS (VALUES ('location')) 
SELECT full_address FROM $table WHERE latitude is NULL limit 5;");

while ($row = pg_num_rows($result > 0)) {
     $arr = pg_fetch_all($row);

//curl commands fetch data and ingest
}
EN

回答 2

Stack Overflow用户

发布于 2015-11-19 18:33:37

使用do while id循环应该至少执行一次。

While是进入控制循环(它会在你进入循环时检查条件)

Do While是退出控制循环(执行一次循环后将检查条件)。

票数 0
EN

Stack Overflow用户

发布于 2015-11-19 18:37:49

如果您希望循环至少运行一次;请使用do,但如果您的循环可能永远不会执行(由于该条件),则使用while

在本例中,最好使用while,因为数据库查询可能不会给出任何结果。您的while循环需要获取单行并对其进行处理,直到没有更多的行可供获取。

代码语言:javascript
复制
while ($row = pg_fetch_row($result)) {
  //your code to use row's data
}

do-while循环与while循环非常相似,只是在每次迭代结束时检查真值表达式,而不是在开始时检查。与常规while循环的主要区别在于,do-while循环的第一次迭代是肯定会运行的(只有在迭代结束时才会检查真值表达式),而它不一定与常规while循环一起运行(真值表达式在每次迭代开始时都会检查,如果它从一开始就计算为FALSE,则循环执行将立即结束)。

来自:http://php.net/manual/en/control-structures.do.while.php

编辑

代码语言:javascript
复制
// $dbconn = connection......
for($=0;$i<10;$i++){
$result = pg_query($dbconn, "**your query with** Limit ".(100*$i).",100;");
    while ($row = pg_fetch_row($result)) {
      //your code to use row's data
      // do your curl stuff here for the 1 result
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33801220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档