php loops - while or do while?


php loops - while or do while?

我对PHP和pgsql还很陌生。。。一般来说,编码是新的。我正试图弄清楚我应该对这个问题进行while还是do while循环。

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

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

这是我的代码:

// $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
}

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

While is entry control loop(当您进入环路时,它将检查条件)

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

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

在您的情况下,首选while,因为数据库查询可能不会给出任何结果。while循环需要提取一行并对其进行处理,直到没有更多的行可提取为止。

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

编辑

// $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
    }
}