首页 > 解决方案 > 在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')"; } } ?> 

标签: phpmysqlforms

解决方案


接下来试试:

<?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);
             }

         } 

    }
?>

推荐阅读