Я хотел бы сгенерировать буквенно-цифровой идентификатор сотрудника в PHP, например. EP0001
Генерировать алфавитно-цифровой идентификатор сотрудника
Любые идеи?
Я хотел бы сгенерировать буквенно-цифровой идентификатор сотрудника в PHP, например. EP0001
Генерировать алфавитно-цифровой идентификатор сотрудника
Любые идеи?
Нам понадобится больше, чем это, чтобы помочь вам, но это то, что я буду делать.
Предполагая EP
является началом каждого алфавитно-цифровой идентификатор сотрудника, то
<?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;
}
?>
UPDATE
Благодаря Trefex
Если вы используете MySQL, вы можете хранить идентификатор сотрудника в поле и установите атрибут ZEROFILL. Таким образом, вы не должны иметь дело с нулями в PHP
<?php
function getTotalEmployees() {
$num = 'Get number of Employees from database';
++$num; // add 1;
return $num;
}
?>
Если вы используете MySQL, вы можете сохранить идентификатор сотрудника в поле и установить атрибут ZEROFILL. Таким образом, вам не нужно иметь дело с нулями в PHP. – Trefex
без блокировки таблицы, у вас здесь есть состояние гонки. –
Кроме того, менее подробный способ для заполнения будет возвращать sprintf ('% 04d', $ num); –
Вы можете перейти на следующий код, если вы ищете случайных идентификаторов
<?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;
?>
Вы можете найти это более & в сама Google
http://www.webmaster-talk.com/php-forum/29621-php-randomly-generate-alphanumeric-charachters.html
Нет необходимости в слове с массивами; вы также можете получить доступ к строкам с синтаксисом '$ str [12345]'. – Gumbo
Просто делать их последовательно, нет необходимости в данных «Кодекс» в число таких поскольку «E означает, что он является сотрудником уровня предприятия, а P означает, что он паркован в P-лоте». Это устаревший способ делать вещи, которые подкрались до того, как существовали базы данных. Кодирование специальных значений в уникальный идентификатор, который может измениться, будет кошмаром, нет необходимости делать это, и это плохой дизайн базы данных.
В качестве альтернативы, если эти числа подвержены некоторому уровню мошенничества, они генерируют их в непоследовательном методе, таком как генерирование psudo-random UID и проверка того, используется ли он или нет, а затем назначая его.
Попробуйте следующий код:
$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);
как вы хотите создать что, больше деталей, пожалуйста. – Sarfraz
Вы используете какую-либо базу данных? Postgresql предлагает таблицы последовательностей, в которых вы можете получить последовательности и поточно-безопасные. – pakore
Есть ли причина, почему вы не хотите делать это в dabatase? –