php执行while循环,每次循环前检查

php执行while循环,每次循环前检查,php,mysql,loops,Php,Mysql,Loops,我点击一个API获取值,然后将它们加载到一个MySQL表中,有时值返回为0,只需重新运行API调用就会返回实际值。我认为一个简单的循环可以工作,但我似乎不知道如何重新检查我的$checkDigit,一旦将大于0的值插入表中,它就会中断循环 有没有办法在每个循环上运行的while部分中重新检查或使用MySQL查询?从下面的示例中,如果$checkDigit返回为0,它将变成一个无限循环,因为检查DB值的查询在开始时只检查一次 我原以为do-while循环是最干净的方法,但我唯一能想到的是嵌套一堆i

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

更新:

那么,这在技术上应该是可行的

执行检查查询->从api获取数据并加载->从检查查询获取值以查看是否应该退出->如果必须再次运行,它将重新运行检查查询以更新$checkDigit值->再次点击api->使用新的$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);
?>


是的,您可以在循环中运行查询。但请注意,每当您运行嵌套查询,并且内部查询使用/依赖于外部查询的数据时,您可能可以/应该将其重写为单个ed查询。根据使用情况,我尝试在循环中延迟执行子查询,只编译一个非常大的查询集,然后将其作为一个大型事务提交。示例:
$d=0$list=新数组();而($d<5){$list[]=“insert-into-table”}$q=内爆(“;”,$list);mysql_查询($q)