php中的随机和唯一编号生成过程

时间:2014-03-13 11:12:36

标签: php

请查看以下示例以获得更好的解释。

在表格中我有以下字段

示例:

帐户创建次数: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;
    }

请帮我解决这个问题。

提前致谢。

0 个答案:

没有答案