我尝试生成随机数并在数据库中检查它是否存在,然后重试直到获得结果然后使用以下代码中断
但它不起作用,我不知道while循环的问题在哪里
<?
$digit=mt_rand(11, 999);
$sql=mysqli_query($connect, "SELECT `number` FROM `db_name` WHERE `number` =='$digit' ");
while($num=mysqli_num_rows($sql))
{
if($num==1)
{
echo "Not good";
}
else
{
echo "Good ".$digit;
break;
}
}
?>
我也尝试了这段代码,但是当该数字在数据库中可用时,脚本会停止并且不会尝试生成另一个数字
<?
$digital=mt_rand(11, 999);
$sql=mysqli_query($connect, "SELECT `number` FROM `db_name` WHERE `number` ='$digital'");
$i=0;
while($i<=10000)
{
$num=mysqli_num_rows($sql);
if($num==1)
{
$i++;
}
else
{
echo "Good ".$digital;
break;
}
}
?>
最后
我通过下面的代码解决了它
<?
$unique_ref_found = false;
while (!$unique_ref_found) {
$digital = mt_rand(11, 999);
$sql = mysqli_query($connect, "SELECT `number` FROM `db_name` WHERE `number` ='$digital'");
$num= mysqli_num_rows($sql);
if ($num==0) {
$unique_ref_found = true;
}
}
echo $digital;
?>