订单号一般是根据用户ID,购买时间,商品ID生成的,
php
$pre = date("Ymd");
$maxOrder = '取得的值';
$order = intval($maxOrder) ◆ 1;
PHP 生成订单号,GUID 方法
生成订单号
function build_order_no() { ?
}
生成GUID
function guid() { ?
if (function_exists('com_create_guid')) { ? ? ?
? ? return com_create_guid(); ?
} else { ?
? ? mt_srand((double)microtime()*10000);
? ? return $uuid; ?
拿txt/xml/sqlite/mysql 存 day number
然后获取的时候, 如果day不为今天, 则number重置, 再写入day为今天,否则number◆◆
php可以使用uniqid函数生成唯一的ID
uniqid — 生成一个唯一ID
string?uniqid([?string?$prefix?=?""[,?bool?$more_entropy?=?false]])
获取一个带前缀、基于当前时间微秒数的唯一ID.
参数说明:
prefix:有用的参数.例如:如果在多台主机上可能在同一微秒生成唯一ID.
more_entropy:如果设置为 TRUE,uniqid() 会在返回的字符串结尾增加额外的煽(使用combined linear congruential generator).使得唯一ID更具唯一性.
返回值:
返回字符串形式的唯一ID.
说下思路:
① 将生成的数字保存到mysql数据库,然后每次生成的号码不能与数据库的数字重复,请问怎么弄?
先读取数据库已存在的数字,将结果以数组格式,与rand(1,1000)的数组相比较计算差集,去除这部分数字(array_diff),再shuffle,得到新的随机数.
我觉得,你完全可以建立一个序号表,比如,1-1000,每次用时先用随机函数取(1-数据记录数)个数值,再用这个数值取得相应的记录,当取出之后,删除这个记录,这样保证记录总数一直会减少且数字也不会重复.
先获取一位数的记录,再从中随机抽取一个,如果数据库中没有找到一位数的,就递增一位数,直到找到为止.
如果想要代码执行效率,最好尽量减少与数据库的交互.
以上就是土嘎嘎小编为大家整理的php如何生成不重复订单号相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!