生成SQL数据库中不存在的PHP随机数
我尝试生成随机数,并在DB中检查它是否存在,然后重试,直到得到结果,然后使用以下代码中断 但是它不起作用,我不知道while循环的问题在哪里生成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=
<?
$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;
?>