生成字母数字员工ID

时间:2010-07-08 12:58:56

标签: php

我想在PHP中生成一个字母数字的员工ID,例如EP0001

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

我们需要的不仅仅是帮助你,但这就是我要做的事。

假设EP是每个字母数字员工ID的开头,那么

<?php
$number = getTotalEmployees();

$id = 'EP'.$number;

function getTotalEmployees() {
    $num = 'Get number of Employees from database';
    ++$num; // add 1;

    $len = strlen($num);
    for($i=$len; $i< 4; ++$i) {
        $num = '0'.$num;
    }
    return $num;
}
?>

<强>更新

感谢 Trefex 如果您使用MySQL,则可以将员工ID存储在字段中并设置ZEROFILL属性。这样你就不必处理PHP中的零

<?php
function getTotalEmployees() {
    $num = 'Get number of Employees from database';
    ++$num; // add 1;
    return $num;
}
?>

答案 1 :(得分:1)

按顺序执行它们,不需要将数据“编码”成数字,例如“E意味着他是企业级员工而P意味着他停在P-lot中”。这是一种在数据库存在之前就已经过时的过时方式。将特殊含义编码为可以改变的唯一标识符将是一场噩梦,没有必要这样做,而且数据库设计很糟糕。

或者,如果这些数字容易出现某种程度的欺诈,则以非顺序方法生成它们,例如生成伪随机UID并检查它是否正在使用,然后分配它。

答案 2 :(得分:0)

如果您正在寻找随机ID

,可以使用以下代码
<?php 
  $numchars = rand(4,15); //You can specify the length here
  //This is the list from which id is generated.
  $chars =   explode(',','a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9'); 
  $random=''; 
  //Do a random generation in a for loop
  for($i=0; $i<$numchars;$i++)  { 
    $random.=$chars[rand(0,count($chars)-1)]; 
  } 
  //Here you go.. Nice & pretty
  echo $random; 

?>

你可以找到这个&amp;谷歌本身更多

http://www.webmaster-talk.com/php-forum/29621-php-randomly-generate-alphanumeric-charachters.html

答案 3 :(得分:0)

请尝试以下代码:

$auto='Select all documents from your database';
$inc=count($auto)+1;//count of number of documents 
$unique_id='Emp_'.str_pad($inc, 3, "0", STR_PAD_LEFT);