无重复数的PHP随机数
我期待有一个随机数为我的网站工作的订单id号生成。它使用MySQL存储订单id为主键的订单,因此它们无法匹配。订单id放在一个输入字段中,该字段将用于插入数据库,因此我无法使用MySQL生成该编号 我试过无重复数的PHP随机数,php,Php,我期待有一个随机数为我的网站工作的订单id号生成。它使用MySQL存储订单id为主键的订单,因此它们无法匹配。订单id放在一个输入字段中,该字段将用于插入数据库,因此我无法使用MySQL生成该编号 我试过$numbers=range(1,20); 洗牌(数字)但只需在输入字段中获取“Array” 现在,我所能做的就是根据您的框架调用这个函数。此函数由CI框架完成,用于检查数据库中是否存在随机数 get_random_number('tbl_order','id'); function get_
$numbers=range(1,20);
洗牌(数字)代码>但只需在输入字段中获取“Array”
现在,我所能做的就是根据您的框架调用这个函数。此函数由CI框架完成,用于检查数据库中是否存在随机数
get_random_number('tbl_order','id');
function get_random_number($table_name,$field_name)
{
// Create a random id
$random_unique = sprintf('%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));
//$random_unique = random_string('alnum', 6);
// Make sure the random id isn't already in use
$CI = get_instance();
$CI->db->where($field_name, $random_unique);
$query = $CI->db->get_where($table_name);
if ($query->num_rows() > 0)
{
// If the random id is already in use, get a new number
$this->get_random_number();
}
return $random_unique;
}
要么将主键生成留给数据库(自动递增字段),要么使用低冲突概率的随机值(如UUID)。另请参见。我已编辑以包括我尝试了$numbers
,但得到的只是“数组”@RobbyCornelissen我需要它生成一个数字,这样它就可以通过URL传输到另一个页面。也可以看到,显然是插件我的答案;P