我的 php 代码在注册用户时生成一个随机银行帐号。
当$wszystko_ok == true
时,让他注册。
此代码检查生成的编号是否已存在于数据库中。如果存在,则设置$wszystko_ok = false
,不同意账号注册。
在这种情况下如何让它再次生成随机数?
$wszystko_ok == true
$r_nrkonta = rand(1000000000, 9999999999);
$rezultat2 = $polaczenie->query("SELECT nrkonta FROM kontabankowe WHERE nrkonta='$r_nrkonta'");
if (!$rezultat2)
throw new Exception($polaczenie->error);
$ile_takich_nrkonta = $rezultat2->num_rows;
if ($ile_takich_nrkonta > 0)
{
$wszystko_ok = false;
}
最佳答案
为了简单起见,这里用 in_array 调用代替 SQL SELECT。
<?php
$acs =
[
'1',
'2',
'3'
];
$limit = 10;
$tries = 0;
while(true)
{
$tries++;
if($tries >= $limit)
throw new Exception('New AC number generation attempts exceeded.');
$new_ac = rand(1,10);
if(!in_array($new_ac, $acs))
break;
}
var_dump($new_ac, $tries);
关于php - 在 if-else 中重新生成随机数(php),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50793765/