我想在PHP中生成一个字母数字的员工ID,例如EP0001
有什么想法吗?
答案 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);