php - 在 if-else 中重新生成随机数(php)

标签 php mysql

我的 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/

相关文章:

mysql - 在关系数据库中,所有将在查询中排序的列都应该有一个索引吗?

mysql - 使用服务器端准备好的语句进行子查询?

php - 在 PHP 中将标题转换为 url 兼容模式的最佳方法?

php - CodeIgniter 数据库迁移错误

php - 获取用户当前位置

php - 将信息从 javascript 发送到 php 文件

php - 上传的文件未保存在文件夹中

java - 从 Android 设备访问 SQL DB 时,我的 httpEntity 返回 null,任何人都可以告诉我这是为什么吗?

mysql - 返回最受欢迎的预订日

mysql - 替换wp_postmeta的meta_value中与特定meta_key相关的URL