首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动生成从001开始的序列号(仅限3位)- PHP / MYSQL

自动生成从001开始的序列号(仅限3位)- PHP / MYSQL
EN

Stack Overflow用户
提问于 2013-11-29 18:23:06
回答 3查看 29.5K关注 0票数 2

我需要自动生成的序列号从001开始在PHP / MYSQL中只有3位数字

例: 001下一步是002,下一步是003...009 ..010 ..119..120..etc但生成的数字应该是在序列明智不像001然后120或008等,我需要在序列号。

实际上,我有产品跟踪系统。我需要我的主产品id +自动序列号的混合器(如果需要,只有3位数字可以更改),因此我的最终产品id变成:

111-001、111-002、111-003、111-004 ....etc

注意:这个自动序列号将被插入到我的mysql数据库中(在ADD按钮之后跟随Update query (因此我的自动序列号将被输入到database with Update query ))

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-29 18:37:09

只需在id列中添加length 3和zerofill即可。

代码语言:javascript
复制
ALTER TABLE  `YOUR_TABLE` CHANGE  
`id_column`  `id_column` INT( 3 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT
票数 2
EN

Stack Overflow用户

发布于 2013-11-29 18:31:19

只要稍加修改,就能满足您的需求

代码语言:javascript
复制
 <?php
$connection = mysql_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 = mysql_query($query3);
$count = mysql_num_rows($result3);
if($count == 0)
{
$seq = 1;
$ref = 111;
$a = sprintf("%04d", $seq);
$emp_id = $ref.'-'.$a;
$query= "INSERT INTO simple (emp_id) VALUES ('$emp_id')";
$result=mysql_query($query)or die(mysql_error());
}
else
{
    $query2 = "SELECT * FROM simple ORDER BY id DESC LIMIT 1";
    $result2 = mysql_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);
    $ref = 111;
    $emp_id = $ref.'-'.$ars;
    $query= "INSERT INTO simple (emp_id) VALUES ('$emp_id')";
    $result=mysql_query($query)or die(mysql_error());
}
票数 0
EN

Stack Overflow用户

发布于 2016-03-18 15:13:52

尝试以下代码:

代码语言:javascript
复制
$maxDigit=5; //maximum digit of ur number
$currentNumber=0020;  //example this is your last number in database all we need to do is remove the zero before the number . i dont know how to remove it
$count=strlen($currentNumber); //count the digit of number. example we already removed the zero before the number. the answer here is 2
$numZero="";
for($count;$count<=$maxDigit;$count++)
     $numZero=$numZero+"0";

$newNum=$newNum+$currentNumber;

输出:00020

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20283458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档