如何循环一部分代码直到value1!= value2?

时间:2018-11-01 19:30:13

标签: php

我使用此代码获取一个随机数(长度为9),并检查DB表上是否存在具有该数字的行(如果存在),将生成一个新数字,直到该表中不存在该数字为止:

代码:

$random_numbers = substr(str_shuffle(str_repeat("0123456789", 9)), 0, 9);

$Sql = "SELECT numer_zamowienia FROM zamowienia WHERE numer_zamowienia = '$random_numbers '";
$result_wartosc = $con->query($Sql);

帮帮我...

2 个答案:

答案 0 :(得分:0)

使用while循环,在查询找不到匹配项时中断循环。

while (true) {
    $random_numbers = substr(str_shuffle(str_repeat("0123456789", 9)), 0, 9);
    $Sql = "SELECT 1 FROM zamowienia WHERE numer_zamowienia = '$random_numbers '";
    $result_wartosc = $con->query($Sql);
    if ($result_wartosc->num_rows == 0) {
        break;
    }
}
// Now you can insert $random_numbers into the table

答案 1 :(得分:0)

正如其他人所建议的,do-while loop可能是您想要的。您的代码如下所示:(注意,我还删除了SQL查询字符串中$random_numbers之后的多余空间)

do {
    $random_numbers = substr(str_shuffle(str_repeat("0123456789", 9)), 0, 9);

    $Sql = "SELECT numer_zamowienia FROM zamowienia WHERE numer_zamowienia = '$random_numbers'";
    $result_wartosc = $con->query($Sql);

} while ($result_wartosc->num_rows > 0);