Генерация 3000 различных 14-значных чисел в php и mysql - PullRequest
0 голосов
/ 05 октября 2019

Я хочу создать номера ПИН с 14 цифрами. Я хочу вставить 3000 различных номеров выводов, а затем вставить их в 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')"; } } ?> 

1 Ответ

0 голосов
/ 06 октября 2019

Попробуйте следующее:

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

         } 

    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...