Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
生成SQL数据库中不存在的PHP随机数_Php_Sql - Fatal编程技术网

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

生成SQL数据库中不存在的PHP随机数,php,sql,Php,Sql,我尝试生成随机数,并在DB中检查它是否存在,然后重试,直到得到结果,然后使用以下代码中断 但是它不起作用,我不知道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=

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

但是它不起作用,我不知道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;
    }
  }
?>
最后

我用下面的代码解决了它

<?
$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; 


?>

不是db中的数字,整数,当比较时,您引用的是字符串。1)您选择的是所有与您的数字不匹配的数字,您应该只选择与您的数字匹配的记录。2) 您正在将返回的行数与您的行数进行比较,而您应该只是检查返回的行数是否大于零。我修改了代码,但仍然不起作用。您是否尝试了下面的答案。也可能存在连接问题。最好在调试模式下使用
die(mysql\u错误)
。你们所得到的错误将使问题更容易理解。根据我的帖子修改代码后,并没有任何东西只显示黑色页面。我在脚本之前也添加了db信息。
<?
$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; 


?>