使用固定的字母数字字符串和变量整数部分php生成id

时间:2014-11-05 06:14:55

标签: php

我正在尝试使用固定的字母数字部分和不同的3位数字部分生成一个id。 也就是说,id将如下所示:

LAB-SER-420316-1415-000
LAB-SER-420316-1415-001
...
LAB-SER-420316-1415-010
LAB-SER-420316-1415-020
...
LAB-SER-420316-1415-110
LAB-SER-420316-1415-210
.....

我的任务是只生成一次id,即重复id必须避免。一旦页面加载,它应该生成单个id。这就像提供帐单号或类似的东西。我已经创建了一个函数来生成这个字符串达到极限。但我每次加载页面时都需要它来生成。

代码:

<?php
function generatebillno()
{
$saved="LAB-SER-420316-1415-";
for($count = 0; $count <= 999; $count++)
{
        $var= str_pad($count, 3, '0', STR_PAD_LEFT);
        return $saved.$var; 
}

}
echo generatebillno();
?>

任何人都可以帮助我这样做。我被困在这里..

1 个答案:

答案 0 :(得分:1)

试试这个 -

//fetch the max id (the last digit as number)
$sql = $mysqli->query('select max(cast(substring(demo_field, 21) as unsigned)) as digit, 

demo_field from demo');
$res = $sql->fetch_assoc();
//check for empty valyues
if (empty($res['demo_field'])) {
    $str = "LAB-SER-420316-1415";
    $res['digit'] = 0;
} else {
    $str = substr($res['demo_field'], 0, 19);
}
$dig = $res['digit'] + 1;
//add padding if needed
$dig= str_pad($dig, 3, '0', STR_PAD_LEFT);
$newStr = $str.'-'.$dig;

var_dump($newStr);