(货单号)这种字段值怎么生成? 订单表需要一个字段叫订单号要求 日期+当天的单序比如 2009年5月1日 第1个订单:20090501001比如 2009年5月1日 第2个订单:20090501002比如 2009年5月2日 第1个订单:20090502001......如何实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 算法就是分隔当天日期,再加上后面的自增变量这也是订单ID生成最普遍的做法了,网上有很多做法的,我给楼主一个参考第一步:获得当天日期的字符串date("Ymd") 能得出类似于20090502这样的字符串第二步:生成自增的三位数字符串这个问题没有楼上几位说得那么简单,因为如果位数是1位的话,前面要补两位,两位的话,前面要补1位粗略算法是定义一个函数,入口是变量$i(这个变量最好是放到数据库中,因为你插入这些数据在时间上未必是连续的,在插入时用一段SQL获取上次最后插入这个变量)function genNum($i){ $returnStr=''; if($i<10 && $i>0) $returnStr = '00'.$i; elseif($i>=10 && $i<100) $returnStr = '0'.$i else $returnStr = $i;}然后将1、2步的字符串用 . 符号连接起来,就形成了这种唯一的编号,再插入数据库中即可 $i=1;$a='2009年5月1日';$a=str_replace(array("年","月","日"),array("-","-","-"),$a);$date=date("Ymd",strtotime($a));$rs=$date.sprintf("%03d",$i);echo $rs;//20090501001 高手帮我分析下这个函数的作用是什么? php生xml 求正则表达式:匹配非XX开头,非XX结尾,中间匹配 怎么开发多语言版网站啊 ??? PHP 一行太长 写不下, 续行(换行) 符是什么? PHP的session_start()和require_once起冲突了怎么办? PHP脚本执行结束时,是不是没有关闭的mysql连接都被自动关闭了? 为什么在xp装上php,在浏览器老显示读内存错误? 求助 请问现在哪里有国内的支持CGI的空间呀!救救我吧! (要免费的) 新手高分问一php安装配置问题 在网页任意显示一文件夹下图片
这也是订单ID生成最普遍的做法了,网上有很多做法的,我给楼主一个参考第一步:获得当天日期的字符串
date("Ymd") 能得出类似于20090502这样的字符串第二步:生成自增的三位数字符串
这个问题没有楼上几位说得那么简单,因为如果位数是1位的话,前面要补两位,两位的话,前面要补1位粗略算法是定义一个函数,入口是变量$i(这个变量最好是放到数据库中,因为你插入这些数据在时间上未必是连续的,在插入时用一段SQL获取上次最后插入这个变量)
function genNum($i){
$returnStr=''; if($i<10 && $i>0)
$returnStr = '00'.$i;
elseif($i>=10 && $i<100)
$returnStr = '0'.$i
else
$returnStr = $i;
}
然后将1、2步的字符串用 . 符号连接起来,就形成了这种唯一的编号,再插入数据库中即可
$i=1;
$a='2009年5月1日';
$a=str_replace(array("年","月","日"),array("-","-","-"),$a);
$date=date("Ymd",strtotime($a));
$rs=$date.sprintf("%03d",$i);
echo $rs;//20090501001