如何在PHP中生成具有注册年份的员工ID?

时间:2013-11-29 07:56:35

标签: php mysql sql

我需要生成一个员工ID,例如:E13001,该号码应该自动递增,当下一年到来时,它应该是E14001(年份是2014年)。它应该每年从001开始。我尝试使用yy格式,但序列号从前一年开始。我怎么想改变序列号生成?帮我。提前致谢。

2 个答案:

答案 0 :(得分:0)

嗯,除了整数之外,MySQL中列的自动增量不起作用。它也会随着每个字段递增。

要做你想做的事,你需要将id和year分开(对于mysql表)。所以你得到一个id为id的表,emp_id(不应该由db管理,没有AUTO-INCREMENT)和年份。然后选择max(emp_id),其中year ='2014',因此在添加新员工时,您将增加该值。为了按照您需要的方式获得员工身份,您应该将拖车柱合并为一个并从一年中卸下第一个拖车柱。

你应该知道这会成为一个分布式的e_id,每次你需要使用它时,你需要做额外的工作。但是你保留了你需要的格式。

希望这可以帮助您了解如何完成。

答案 1 :(得分:0)

您好,您可以尝试以下方式

<?php   

$connection = mysqli_connect("localhost","root","")
or die("no connection");
$db_select=mysql_select_db("test",$connection)
or die("no connection to db");
$query3 = "SELECT * FROM simple";
$result3 = mysqli_query($query3);
$count = mysql_num_rows($result3);
if($count == 0)
{
$year = date('y');
$seq = 1;
$a = sprintf("%04d", $seq);
$emp_id = E.$year.$a;
$query= "INSERT INTO simple (emp_id) VALUES ('$emp_id')";
$result=mysqli_query($query)or die(mysql_error());
}
else
{
    $query2 = "SELECT * FROM simple ORDER BY id DESC LIMIT 1";
    $result2 = mysqli_query($query2);
    $row = mysql_fetch_array($result2);
    $last_id = $row['emp_id'];
    $rest = substr("$last_id", -4);  
    $insert_id = "$rest" + 1;
    echo $ars = sprintf("%04d", $insert_id);
    $year = date('y');
    $emp_id = E.$year.$ars;
    $query= "INSERT INTO simple (emp_id) VALUES ('$emp_id')";
    $result=mysqli_query($query)or die(mysql_error());
}

希望此代码可以帮助您。