gpt4 book ai didi

php - 如果结果与数据库条目匹配,则在 php 中刷新 rand()

转载 作者:行者123 更新时间:2023-11-29 04:34:20 25 4
gpt4 key购买 nike

我有一个数据库,其中包含与标识每一行的条形码相关的数字。条形码列是唯一的,并且是主键。

在我的站点注册后,我希望生成一个随机数字字符串并将其存储在条形码字段中。 Currectly 我正在使用此命令生成字符串 >

$barcode = mt_rand(100000, 999999).mt_rand(100000, 999999);

然后我用它来检查条目是否存在>

$resultbarcode = $mysqli->query("SELECT * FROM users WHERE barcode='$barcode'") or die($mysqli->error());

然后使用 If 语句 >

if ( $resultbarcode->num_rows > 0 ) {


}

我正在检查返回的行数是否大于 0。如果是,我想刷新 $barcode 变量,直到没有结果为止。

可以这样做吗?还是我应该将 $barcode 放在一个单独的 .php 文档中并将其调用到这个文档中?

最佳答案

不要折磨你糟糕的数据库垃圾查询,看看你刚刚创建的条形码是否已经存在于一个迭代中。通过一次查询将所有现有条形码提取到一个数组中,然后使用 in_array function 检查它上面的全新条形码.它会更快……更健康:

$mysqli->query("SELECT DISTINCT barcode FROM users") or die($mysqli->error());
$barcodes = $mysqli->fetch_array(MYSQLI_NUM);

do
{
$barcode = mt_rand(100000, 999999).mt_rand(100000, 999999);
}
while (in_array($barcode, $barcodes));

或者,由于在数据库端您的用户应该与唯一 ID 相关联,因此可以找到一种算法来根据该值生成唯一条形码。

关于php - 如果结果与数据库条目匹配,则在 php 中刷新 rand(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48037968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com