首頁  >  文章  >  後端開發  >  php如何產生不重複的訂單編號

php如何產生不重複的訂單編號

藏色散人
藏色散人原創
2020-11-17 09:27:464789瀏覽

php產生不重複訂單號碼的方法:1、利用資料庫主鍵值產生一個自增長的訂單號碼;2、實現「日期自增長數字」的訂單號碼;3、產生隨機的訂單編號;4、實現「字母數字字串式」的訂單號碼。

php如何產生不重複的訂單編號

推薦:《PHP影片教學

PHP產生唯一訂單號碼的方法總結

//商品编号生成
(YmdHi)拼接上兑换表生成的Id
//订单号的生成
(YmdHi)拼接上订单表生成的Id
echo date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

 

訂單號碼常見的幾種方式:

#1.利用資料庫主鍵值產生一個自成長的訂單號碼(訂單編號即資料表的主鍵)

2.日期自增長數字的訂單號碼(例如:2012040110235662)

3.產生隨機的訂單號碼(65865325365966)

4.字母數字字串式,字母有包含特別意義,C02356652

  

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

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

  

訂單號碼設計使用者體驗規則:

1.訂單號碼無重複性;

2.如果方便客服的話,最好是“日期自增數」樣式的訂單號,客服一看便知道訂單是否在退貨保障期限內容;

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

4.訂單號盡量保持數字型(純整數),在資料庫訂單索引查詢中,長整數位型的資料索引與檢索效率,遠遠高於文字型,因此盡量避免「字母數字字串式」!

 

做商城類別專案經常需要產生唯一訂單號,下面來個匯總!

方法一:

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如何產生不重複的訂單編號的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn