我想生成一个5位数的随机数,该数字不在表格中并适用于注册。我有下面的代码..它生成一个随机数,但它显示
“注意:未定义的变量:F:\ wamp \ www \ hello \ hello.php中的id 第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;
?>
答案 0 :(得分:2)
问题是你需要在附加id之前初始化id。
例如,这个函数可以解决这个问题:
function createID() {
$id = '';
for ($i = 1; $i <= 5; $i++) {
$id .= rand(0,9);
}
return $id;
}
答案 1 :(得分: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);
}
答案 2 :(得分:0)
您需要在使用之前定义变量。
<?php
function createID() {
$id = ''; // define $id variable
for ($i = 1; $i <= 5; $i++) {
$id .= rand(0,9);
}
return $id;
}