【问题标题】:generating random numbers in php [duplicate]在php中生成随机数[重复]
【发布时间】:2016-12-24 13:13:01
【问题描述】:

我想生成一个不在表格中的5位随机数并申请注册。我有下面的代码..它正在生成一个随机数,但它显示了

" 注意:未定义变量:id in F:\wamp\www\hello\hello.php on 8号线

请帮帮我

<?php


error_reporting(E_ALL ^ E_DEPRECATED);
// function to generate random ID number
function createID() {
 for ($i = 1; $i <= 5; $i++) {
  $id .= rand(0,9);
 }
 return $id;
}

// MySQL connect info
mysql_connect("localhost", "root", "");
mysql_select_db("college");
$query = mysql_query("SELECT id FROM college");

// puts all known ID numbers into $ids array
while ($result = mysql_fetch_array($query)) {
 $ids[] = $result["id"];
}

// generates random ID number
$id = createID();

// while the new ID number is found in the $ids array, generate a new $id number
while (in_array($id,$ids)) {
 $id = createID();
}

// output ID number
echo $id;

?>

【问题讨论】:

  • 如果您正在编写新代码,不要使用mysql_* 函数。它们又旧又坏,在 PHP 5.5 中被弃用(它太旧了,甚至不再接收安全更新),并在 PHP 7 中完全删除。使用 PDOmysqli_*prepared statements参数绑定。详情请见stackoverflow.com/q/12859942/354577
  • 你必须初始化 $id 以避免警告
  • 它现在显示更多错误!
  • 如何初始化 $id ?我是 php 新手
  • @Durai Sankar 我已经在下面的回答中解释了如何做到这一点。

标签: php mysql random undefined


【解决方案1】:

问题是你需要在追加之前初始化 id。

例如,这个函数应该可以解决问题:

function createID() {
    $id = '';
    for ($i = 1; $i <= 5; $i++) {
         $id .= rand(0,9);
    }
    return $id;
}

【讨论】:

    【解决方案2】:

    您在定义之前附加到$id。只需用空字符串初始化它,就可以了:

    function createID() {
        $id = '';
        for ($i = 1; $i <= 5; $i++) {
            $id .= rand(0,9);
        }
        return $id;
    }
    

    但是,坦率地说,我认为您正在重新发明轮子。您可以将 0 到 99999 之间的数字随机化,并将任何缺失的数字填零:

    function createID() {
        return std_pad(random(0, 99999), 5, '0', STD_PAD_LEFT);
    }
    

    【讨论】:

      【解决方案3】:

      你需要在使用它之前定义变量。

      <?php
      function createID() {
          $id = ''; // define $id variable
          for ($i = 1; $i <= 5; $i++) {
              $id .= rand(0,9);
          }
          return $id;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 2016-08-20
        • 1970-01-01
        • 2011-12-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多