php do-while循环,在每个循环之前检查

时间:2016-03-15 19:51:24

标签: php mysql loops

我点击API获取值然后将它们加载到MySQL表中,有时值返回为0并且只是重新运行API调用将返回实际值。我认为一个简单的循环可以工作,但我似乎无法弄清楚如何重新检查我的$ checkDigit,一旦将大于0的值插入表中,这将破坏循环。

有没有办法在每个循环中运行的while部分内重新检查或发出MySQL查询?从下面的示例中,如果$ checkDigit返回为0,它将变为无限循环,因为检查DB值的查询仅在开始时检查过一次。

我认为do-while循环是最干净的方法,但我唯一能想到的是嵌套一堆if语句。希望我只是忽略了一些简单的事情,但我还没有能够找到一个带有多个检查的do-while循环的例子。

<?php 
$sqlCheck = "select digits from table where date=current_date";
$result = $con->query($sqlCheck);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
    $checkDigit = $row['digits']; 
    }
}

do {
    //fetch JSON from API and load the digits value into table;
} while ($checkDigit < 1);
?>

更新

那么,这应该在技术上有效吗?

执行检查查询 - &gt;从api获取数据并加载它 - &gt;从检查查询中获取值以查看是否应该退出 - &gt;如果必须再次运行,它将重新运行检查查询以更新$ checkDigit值 - &gt;再次点击API - &gt;使用新的$ checkDigit值来查看是否应退出等等

<?php 

do {
$sqlCheck = "select digits from table where date=current_date";
$result = $con->query($sqlCheck);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
    $checkDigit = $row['digits']; 
    }
}
    //fetch JSON from API and load the digits value into table;
} while ($checkDigit < 1);
?>

0 个答案:

没有答案