溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php怎樣生成不重復的訂單號

發(fā)布時間:2020-11-18 10:05:45 來源:億速云 閱讀:253 作者:小新 欄目:編程語言

小編給大家分享一下php怎樣生成不重復的訂單號,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

php生成不重復訂單號的方法:1、利用數(shù)據(jù)庫主鍵值產(chǎn)生一個自增長的訂單號;2、實現(xiàn)“日期+自增長數(shù)字”的訂單號;3、產(chǎn)生隨機的訂單號;4、實現(xiàn)“字母+數(shù)字字符串式”的訂單號。

PHP生成唯一訂單號的方法匯總

//商品編號生成
(YmdHi)拼接上兌換表生成的Id
//訂單號的生成
(YmdHi)拼接上訂單表生成的Id
echo date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

訂單號常見的幾種方式:

1.利用數(shù)據(jù)庫主鍵值產(chǎn)生一個自增長的訂單號(訂單號即數(shù)據(jù)表的主鍵)

2.日期+自增長數(shù)字的訂單號(比如:2012040110235662)

3.產(chǎn)生隨機的訂單號(65865325365966)

4.字母+數(shù)字字符串式,字母有包含特別意義,C02356652

訂單號設計原則: 按需設計

  用來檢索訂單詳細信息的唯一特征碼,可以利用訂單號檢索到下單日期、產(chǎn)品類別、顏色、尺碼(或款式)、倉位等信息,訂單號包含過多的信息有點“畫蛇添足”的意味!只要按需設計即可!

訂單號設計用戶體驗規(guī)則:

1.訂單號無重復性;

2.如果方便客服的話,最好是“日期+自增數(shù)”樣式的訂單號,客服一看便知道訂單是否在退貨保障期限內(nèi)容;

3.訂單號長度盡量保持短(10位以內(nèi)),方便用戶,尤其電話投訴時,長的號碼報錯幾率高,影響客服效率;

4.訂單號盡量保持數(shù)字型(純整數(shù)),在數(shù)據(jù)庫訂單索引查詢中,長整數(shù)字型的數(shù)據(jù)索引與檢索效率,遠遠高于文本型,因此盡量避免“字母+數(shù)字字符串式”!

做商城類項目經(jīng)常需要生成唯一訂單號,下面來個匯總!

方法一:

return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

方法二: 正在使用。。。

return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);

方法三:以前使用。。。

public function make_order($user_id)
{
return mt_rand(10,99)
. sprintf('%010d',time() - 946656000)
. sprintf('%03d', (float) microtime() * 1000)
. sprintf('%03d', (int) $user_id % 1000);
}

方法四:

$yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
$orderSn = $yCode[intval(date('Y')) - 2011] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99));

以上是php怎樣生成不重復的訂單號的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

php
AI