在数字前面显示0

时间:2012-06-27 08:21:44

标签: php mysql number-formatting

我正在通过PHP脚本生成自动增量代码。顺序如下: L001 L002 .... L039 L040 。下面是我编写的PHP代码。评论显示了每个陈述的输出。

<?php

require_once("db_handler.php");

$conn = iniCon();
$db = selectDB($conn);

$query = "SELECT LID FROM locations ORDER BY LID DESC LIMIT 1";
$result = mysql_query($query, $conn);
$row = mysql_fetch_array($result);
$last_id = $row['LID'];   //L040

$id_letter = substr($last_id, 0, 1);  //L
$id_num = substr($last_id, 1) + 1;   //040 + 1
$new_id = $id_letter . $id_num;

mysql_close($conn);

?>

我在HTML文本框中显示$new_id。虽然到目前为止一切正常,但新生成的代码显示为 L41 ,切断了前导零。

如何阻止这种情况发生?我需要在前面保持零。

谢谢。

3 个答案:

答案 0 :(得分:3)

使用str_padsprintf功能:

$id_num = str_pad($id_num, 3, "0", STR_PAD_LEFT);

$id_num = sprintf("%03d", $id_num);

答案 1 :(得分:2)

$id_num = substr($last_id, 1) + 1;   //40 + 1

$id_num = str_pad($id_num, 3, "0", STR_PAD_LEFT); //return 041

$new_id = $id_letter . $id_num;   

答案 2 :(得分:0)

看一下sprintf [1]。提示:%03d

[1] http://br2.php.net/sprintf