0

プロジェクトで一意の 10 桁の数字 (数値) を生成できる php スクリプトを探していました。

私はPHPについてほとんど知りません。これが私のコードです。助けてください。

ここでのコードは、ランダム ピンを生成し、データベース テーブル lucky_coupon_pins に保存することです。


//生成ボタンをチェック

    if (isset($_POST['generate_pin'])) {

// 乱数を生成する

    $random_number=mt_rand();

//コードが生成されたら、テーブルに存在するかどうかを確認し、存在する場合は再度生成するか、次に進みます

$row_count = $db->row_count("SELECT * FROM " . config_item('cart', 'table_lucky_coupon_pins') . " WHERE lucky_pin = '" . $random_number . "'");

if($row_count>0)

{
$random_number=mt_rand();
$row_count = $db->row_count("SELECT * FROM " . config_item('cart', 'table_lucky_coupon_pins') . " WHERE lucky_pin = '" . $random_number . "'");
}

//データベースに挿入

$values = array(
                'lucky_pin'         => $random_number,
                'lucky_pin_value' => $_POST['lucky_pin_value']

            );      

            $db->insert(config_item('cart', 'table_lucky_coupon_pins'), $values);

ここで、生成されたピンを一度チェックしています。すでに存在する場合は、別のピンが生成されます..これがどこまで一意であるかはわかりません。また、生成されたピンは9桁の場合もあれば、10桁の場合もあります.

4

3 に答える 3

0

mt_rand()かなり良い(またはネイティブphp関数を使用して乱数を返す最良の方法)はずなので、ある程度信頼してください。また、10桁の数字のみが必要な場合は、次を試してください:

$random_number = mt_rand(1000000000, 9999999999);
于 2013-07-20T19:27:26.640 に答える