我使用此代码获取一个随机数(长度为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);
帮帮我...
答案 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);