首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL数据库中用PHP语言制作预订ID?

问如何在MySQL数据库中用PHP语言制作预订ID?
EN

Stack Overflow用户
提问于 2010-08-29 19:43:17
回答 4查看 3.1K关注 0票数 0

我有这样的案例:

代码语言:javascript
复制
JS100829 0001
JS100829 0002

JS=code
10=year
08=month
29=date
0001=the sequence of today first entry
0002=the sequence of today second entry

我需要生成这段代码。有人能帮我吗?谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-29 20:16:28

例如,您有一个用于这些预订条目的数据库,这是我最好的猜测:

代码语言:javascript
复制
//sequences
$datenow = date("Y-m-d H:i:s");
//i suppose u has load mysql db somewhere before this code
$q = mysql_query("SELECT COUNT(*) FROM yourtablename WHERE bookingdate = '$datenow'");
//how many squences today
$sequencedtoday = mysql_result($q, 0, 0);
//generate code:
$code = 'JS';
$ymd = date('ymd');
$squence = $squencedtoday+1;
$squence = str_pad($squence,4,0,STR_PAD_LEFT);
//return
echo $code.$ymd.' '.$squence;
//return: JS100829 0001
票数 1
EN

Stack Overflow用户

发布于 2010-08-29 19:50:28

不知道“顺序计数器”是在哪里维护的,这是我最好的尝试(有意的冗长):

代码语言:javascript
复制
$code = 'JS';
$date = date('ymd');
$seq  = 1;
$id = sprintf('%s%s %04d', $code, $date, $seq);
票数 0
EN

Stack Overflow用户

发布于 2010-08-29 19:51:18

将$sequence的值保存在数据库或配置文件中。每次生成ID时保持递增。包含列的数据库表:

  • date : date(也是主键)
  • LatestID: int

然后,像这样做:

代码语言:javascript
复制
$sequence = mysql_fetch_array(mysql_query("select LatestID from seqtable where Date = CURDATE()"));
$sequence = $sequence + 1;

$code = "JS";
$mycode = $code . date("ymd") . str_pad($sequence, 4, '0', STR_PAD_LEFT);

mysql_query("insert into seqtable set LatestID = $sequence, Date = CURDATE ON DUPLICATE KEY UPDATE LatestID = $sequence");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3594574

复制
相关文章

相似问题

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