Hướng dẫn generate 10 digit unique random number in php - tạo số ngẫu nhiên duy nhất gồm 10 chữ số trong php

Tôi đang cố gắng tạo số chữ số 10 chữ số ngẫu nhiên và chèn nó vào MySQL trên tải trang, vì vậy mỗi lần trang làm mới hoặc tải nên có một số 10 chữ số khác nhau được chèn vào cơ sở dữ liệu, tuy nhiên tại thời điểm nó chỉ tiếp tục chèn Cùng một số 10 chữ số một lần nữa và một lần nữa.

Ai đó có thể vui lòng chỉ cho tôi nơi tôi đang đi sai không? Cảm ơn.


Đây là số tôi liên tục nhận được: 2147483647

Hướng dẫn generate 10 digit unique random number in php - tạo số ngẫu nhiên duy nhất gồm 10 chữ số trong php

hỏi ngày 29 tháng 4 năm 2014 lúc 11:07Apr 29, 2014 at 11:07

4

Cố gắng nhận được mười chữ số rand không

$randnum = rand(1111111111,9999999999);

Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:11Apr 29, 2014 at 11:11

Hướng dẫn generate 10 digit unique random number in php - tạo số ngẫu nhiên duy nhất gồm 10 chữ số trong php

Rakesh Sharmarakesh SharmaRakesh Sharma

13.7K4 Huy hiệu vàng36 Huy hiệu bạc44 Huy hiệu đồng4 gold badges36 silver badges44 bronze badges

3

Bạn cần thay đổi loại cột. Số mà bạn cố gắng chèn cao hơn giá trị tối đa cột (trong trường hợp của bạn đã ký Int - 2147483647)

SIGNED INT - 2147483647
UNSIGNED INT - 4294967295

SIGNED BIGINT - 9223372036854775807
UNSIGNED BIGINT - 18446744073709551615

Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:21Apr 29, 2014 at 11:21

Bạn đang nhận được

$randnum = rand(1111111111,9999999999);
2 vì đó là số nguyên có chữ ký cao nhất có chữ ký cao nhất (nhị phân là
$randnum = rand(1111111111,9999999999);
3). Đây cũng là nội dung của hằng số
$randnum = rand(1111111111,9999999999);
4.

Chỉ cần sử dụng một chuỗi với một vòng lặp và hàm

$randnum = rand(1111111111,9999999999);
5:

THỬ NGHIỆM

Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:16Apr 29, 2014 at 11:16

h2oooooooh2oooooooh2ooooooo

38.4K8 Huy hiệu vàng65 Huy hiệu bạc102 Huy hiệu đồng8 gold badges65 silver badges102 bronze badges

Bạn cũng có thể thử điều này nếu bạn muốn. Nó không tạo ra một số ngẫu nhiên mà là một chuỗi ngẫu nhiên

private string generaterandomnumber()
        {
            string Rand1 = RandomString(8);
            string Rand2 = RandomString(8);
            docNum = Rand1 + "-" + Rand2;
            MD5 md5 = new MD5CryptoServiceProvider();
            md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(docNum));

            //get hash result after compute it
            byte[] result = md5.Hash;

            StringBuilder strBuilder = new StringBuilder();
            for (int i = 0; i < result.Length; i++)
            {
                //change it into 2 hexadecimal digits
                //for each byte
                strBuilder.Append(result[i].ToString("x2"));
            }
            return strBuilder.ToString();
        }

Không cần thiết !!! Cám ơn

Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:31Apr 29, 2014 at 11:31

Giáo sưProfessor

6104 Huy hiệu bạc20 Huy hiệu Đồng4 silver badges20 bronze badges

Bạn nên xem xét sử dụng chức năng

$randnum = rand(1111111111,9999999999);
6 như cung cấp một phạm vi phân phối tốt hơn.

Trong mã của bạn, bạn không sử dụng phạm vi số 10 chữ số đầy đủ, hãy thử một cái gì đó như

$MIN_SESSION_ID = 1000000000;
$MAX_SESSION_ID = 9999999999;

$randId = mt_rand($MIN_SESSION_ID, $MAX_SESSION_ID);

echo $randId;

Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:17Apr 29, 2014 at 11:17

KamikamiKami

Phim thương hiệu vàng 18,9k44 gold badges49 silver badges63 bronze badges

Sử dụng mã này.

$x = 10; // Amount of digits
$min = pow(10,$x);
$max = pow(10,$x+1)-1);
$value = rand($min, $max);

Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:09Apr 29, 2014 at 11:09

Hướng dẫn generate 10 digit unique random number in php - tạo số ngẫu nhiên duy nhất gồm 10 chữ số trong php

1

Sử dụng hàm php mt_rand () thay vì rand ()


Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:13Apr 29, 2014 at 11:13

Dkakotidkakotidkakoti

6129 Huy hiệu bạc26 Huy hiệu Đồng9 silver badges26 bronze badges

function random_num ($len)
{
 $ch = "0123456789";
 $l = strlen ($ch) - 1;
 $str = "";
 for ($i=0; $i < $len; $i++)
 {
     $x = rand (0, $l);
     $str .= $ch[$x];
 }
 return $str;
}

Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:14Apr 29, 2014 at 11:14

Không có vấn đề với mã tạo số của bạn. Hãy thử giải quyết các biến của bạn trước khi chúng được xác định và xem liệu nó có khắc phục được sự cố không.

unset($num0, $num1, $num2, $num3);
$num0 = (rand(10,100));
$num1 = date("Ymd");
$num2 = (rand(100,1000));
$num3 = time();
$randnum = $num0 . $num1 . $num2 . $num3;

Bạn có thể dễ dàng sử dụng hàm

$randnum = rand(1111111111,9999999999);
7 để tạo số 10 chữ số bằng cách sử dụng mã sau:
$randnum = rand(1111111111,9999999999);
8

Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:19Apr 29, 2014 at 11:19

Hướng dẫn generate 10 digit unique random number in php - tạo số ngẫu nhiên duy nhất gồm 10 chữ số trong php

Khi tôi chạy tập lệnh của bạn, tôi sẽ nhận được các số khác nhau mọi lúc. Tại sao bạn không sử dụng hàm uniqid ()?

Hướng dẫn generate 10 digit unique random number in php - tạo số ngẫu nhiên duy nhất gồm 10 chữ số trong php

Phóng viên

3,8215 huy hiệu vàng32 huy hiệu bạc46 Huy hiệu đồng5 gold badges32 silver badges46 bronze badges

Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:16Apr 29, 2014 at 11:16

0

38.4K8 Huy hiệu vàng65 Huy hiệu bạc102 Huy hiệu đồng

$randnum = rand(1111111111,9999999999);
0

Bạn cũng có thể thử điều này nếu bạn muốn. Nó không tạo ra một số ngẫu nhiên mà là một chuỗi ngẫu nhiênJul 25, 2015 at 11:56

Hướng dẫn generate 10 digit unique random number in php - tạo số ngẫu nhiên duy nhất gồm 10 chữ số trong php

Không cần thiết !!! Cám ơn

$randnum = rand(1111111111,9999999999);
1

Đã trả lời ngày 29 tháng 4 năm 2014 lúc 11:31

Giáo sưJan 5 at 10:39

Hướng dẫn generate 10 digit unique random number in php - tạo số ngẫu nhiên duy nhất gồm 10 chữ số trong php