Je souhaite générer un ID d'employé alphanumérique dans PHP, par exemple. EP0001
Générer un ID d'employé alphanumérique
Des idées?
Je souhaite générer un ID d'employé alphanumérique dans PHP, par exemple. EP0001
Générer un ID d'employé alphanumérique
Des idées?
Nous allons avoir besoin de plus que cela pour vous aider, mais c'est ce que je ferais.
En supposant EP
est le début de chaque alphanumérique id employé puis
<?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;
}
?>
MISE À JOUR
Merci à Trefex
Si vous utilisez MySQL, vous pouvez stocker l'ID employé dans un champ et définissez l'attribut ZEROFILL. De cette façon, vous ne devez pas traiter avec les zéros en PHP
<?php
function getTotalEmployees() {
$num = 'Get number of Employees from database';
++$num; // add 1;
return $num;
}
?>
Si vous utilisez MySQL, vous pouvez stocker l'ID employé dans un champ et définir l'attribut ZEROFILL. De cette façon, vous n'avez pas à gérer les zéros dans PHP. – Trefex
sans verrouillage de la table en cours, vous avez une condition de course ici. –
aussi, un moyen moins bavard pour le pad serait return sprintf ('% 04d', $ num); –
Vous pouvez aller avec le code suivant si vous cherchez
<?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;
?>
de id aléatoire Vous pouvez trouver cela plus & dans Google lui-même
http://www.webmaster-talk.com/php-forum/29621-php-randomly-generate-alphanumeric-charachters.html
Il n'y a pas besoin de mots avec des tableaux; vous pouvez également accéder aux chaînes avec la syntaxe '$ str [12345]'. – Gumbo
il suffit de faire de manière séquentielle, il n'y a pas besoin de données « code » dans un nombre tel "E signifie qu'il est employé au niveau de l'entreprise et P signifie qu'il se gare dans P-lot". C'est une façon obsolète de faire les choses qui a été créée avant que les bases de données n'existent. Encoder des significations spéciales dans un identifiant unique qui peut changer sera un cauchemar, il n'y a pas besoin de le faire et c'est une mauvaise conception de base de données.
Alternativement, si ces nombres sont sujets à un certain niveau de fraude, générez-les dans une méthode non séquentielle, comme générer un UID psudo-aléatoire et vérifier s'il est utilisé ou non, puis l'affecter.
Essayez le code suivant:
$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);
comment voulez-vous générer que plus de détails. – Sarfraz
utilisez-vous une base de données? Postgresql propose des tables de séquences où vous pouvez obtenir des séquences et des threads en toute sécurité. – pakore
Y at-il une raison pour laquelle vous ne voulez pas le faire dans dabatase? –