请查看以下示例以获得更好的解释。
在表格中我有以下字段
帐户创建次数:300 帐号前缀:123(值取决于用户) 帐户长度:4(值取决于用户)
此处帐户前缀的长度为3,帐户长度为4 4-3 = 1
我们得到1 如果我们创建0-9 = 10和a-z = 26之间的随机字符,那么总数为36 用户可以使用此前缀创建最多36个帐户。
但我还要在数据库中检查已经带有此前缀和随机数的任何数字
像 我得到随机的单个数字是“D”然后执行查询,如
从表中选择id,其中length(number)= 4,数字如'123d'
如果已经存在于数据库中,则需要创建另一个随机字符。
我正在使用当前低于函数但它会进入无限循环。
function find_uniq_rendno_accno($length = '1', $field = '', $tablename = '',$prefix) {
$key = '';
$keys = array_merge(range(0, 9), range('a', 'z'));
for ($i = 0; $i < $length; $i++) {
$key .= $keys[array_rand($keys)];
}
$where = array($field => $default.$string);
$acc_result = $this->CI->db_model->getSelect('Count(id) as count', $tablename, $where);
while ($acc_result[0]['count'] != 0) {
$key= $this->find_uniq_rendno_accno($length, $field, $tablename,$default);
}
return $key;
}
请帮我解决这个问题。
提前致谢。