php - 在php和mysql中生成3000个不同的14位数字
问题描述
我想创建 14 位数的 PIN 码。我想插入 3000 个不同的 pin 号,然后将它们插入 mysql。以下代码将仅插入 120 或 127 个随机数而不是 3000 并停止。在给出这 127 个数字之前,它还会循环更长的时间。我想要的是 3000 个随机数。
这是我的代码:
<form method="post" action=""> <table border=1> <tr>
<td> <input type="text" name="num" placeholder="Enter total number to be generated e.g 3000" required></td>
</tr>
<td> <input type="submit" class="btn btn-primary" name="submit" id="submit" value="Generate Pin"> </td>
<tr>
<td></table></form>
<?php
if (isset($_POST['submit'])){
$num = $_POST['num'];
for ($index = 0; $index < $num; $index++) {
$rand1 = rand(1000000, 9999999);
$check = mysql_query("SELECT * FROM pins WHERE pin='$pin' ") or die
(mysql_error());
if(mysql_num_rows($check)>0){
$index-=1;
}
$sql=mysql_query("INSERT INTO pins(randi) VALUES('$rand1')"; } } ?>
解决方案
接下来试试:
<?php
if (isset($_POST['submit'])){
// amount of numbers
$num = $_POST['num'];
// array of different numbers
$num_ar = [];
// infinity loop
for ( ; ; ) {
// random number
$rand1 = rand(1000000, 9999999);
// 14-digits
//$rand1 = rand(10000000000000, 99999999999999);
// if it is a different number
if(!in_array($rand1,$num_ar)) {
$sql = mysql_query("INSERT INTO pins(randi) VALUES('$rand1')";
array_push($num_ar,$rand1);
}
// stop the loop
if (count($num_ar) == $num) break;
}
}
?>
或者
<?php
if (isset($_POST['submit'])){
// amount of numbers
$num = $_POST['num'];
// array of different numbers
$num_ar = [];
// while loop
while (count($num_ar) !== $num) {
// random number
$rand1 = rand(1000000, 9999999);
// 14-digits
//$rand1 = rand(10000000000000, 99999999999999);
// if it is a different number
if(!in_array($rand1,$num_ar)) {
$sql = mysql_query("INSERT INTO pins(randi) VALUES('$rand1')";
array_push($num_ar,$rand1);
}
}
}
?>
推荐阅读
- python - 如何在pygame的每个Tile网格中绘制数字?
- c# - 具有 Entity Framework Core 的 .NET 控制台应用程序:“进程没有包标识”仅在没有调试的情况下启动
- react-native - undefined 不是对象(评估“expoModule.Components.BlurView”)
- java - 在 Can Foundry PCF 中 manifest.yml 的 JAVA_OPTS 中配置 keystore
- javascript - TypeScript 在迭代中获取对象值
- python - 您如何创建一个函数来接收类别列表并计算每个类别中的元素数量?
- java - Telegram Bot gradle.build 配置
- azure - azure - powershell Set-AzVMDiagnosticsExtension 似乎无法跨订阅工作
- v8 - 如何在 V8 中使用嵌入式 JavaScript 管理关键资源
- reactjs - React Redux 和本地状态的最佳实践