我点击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);
?>