生成 SQL 数据库中不存在的 PHP 随机数



我尝试生成随机数并在数据库中检查它是否存在,然后重试直到获得结果然后使用以下代码中断

但它不起作用,我不知道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; 

?>

最新更新