本文目錄一覽:
- 1、php 如何生成訂單號
- 2、php怎麼動態生成訂單號
- 3、thinkphp訂單號怎麼生成
- 4、php如何生成不重複的流水號
- 5、php 隨機生成不重複用戶ID
- 6、php隨機生成資料庫中不存在、不重複數字
php 如何生成訂單號
訂單號一般是根據用戶ID,購買時間,商品ID生成的,
比如用戶ID:123,購買時間:1353364885,商品ID:567,
則訂單號可以是:123-1353364885-567
php怎麼動態生成訂單號
?php
$pre = date(“Ymd”);
//得到資料庫中當前日期的最大訂單號(這一步可以是通過查詢資料庫,或者通過緩存記錄當前日期的最大訂單號,如果不存在 則默認值就為 $maxOrder = str_pad($pre,12,0); )
$maxOrder = ‘取得的值’;
$order = intval($maxOrder) + 1;
?
thinkphp訂單號怎麼生成
PHP 生成訂單號,GUID 方法
生成訂單號
function build_order_no() {
return date(‘Ymd’).substr(implode(NULL, array_map(‘ord’, str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
}
生成GUID
function guid() {
if (function_exists(‘com_create_guid’)) {
return com_create_guid();
} else {
mt_srand((double)microtime()*10000);
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(45);
$uuid = chr(123)
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);
return $uuid;
}
}
php如何生成不重複的流水號
拿txt/xml/sqlite/mysql 存 day number
然後獲取的時候, 如果day不為今天, 則number重置, 再寫入day為今天,否則number++
php 隨機生成不重複用戶ID
php可以使用uniqid函數生成唯一的ID
uniqid — 生成一個唯一ID
string uniqid([ string $prefix = “”[, bool $more_entropy = false]])
獲取一個帶前綴、基於當前時間微秒數的唯一ID。
參數說明:
prefix:有用的參數。例如:如果在多台主機上可能在同一微秒生成唯一ID。
prefix為空,則返回的字元串長度為13。more_entropy 為 TRUE,則返回的字元串長度為23。
more_entropy:如果設置為 TRUE,uniqid() 會在返回的字元串結尾增加額外的煽(使用combined linear congruential generator)。使得唯一ID更具唯一性。
返回值:
返回字元串形式的唯一ID。
php隨機生成資料庫中不存在、不重複數字
說下思路:
1. 將生成的數字保存到mysql資料庫,然後每次生成的號碼不能與資料庫的數字重複,請問怎麼弄?
先讀取資料庫已存在的數字,將結果以數組格式,與rand(1,1000)的數組相比較計算差集,去除這部分數字(array_diff),再shuffle,得到新的隨機數。
我覺得,你完全可以建立一個序號表,比如,1-1000,每次用時先用隨機函數取(1-數據記錄數)個數值,再用這個數值取得相應的記錄,當取出之後,刪除這個記錄,這樣保證記錄總數一直會減少且數字也不會重複。
2. 有沒有什麼辦法生成的時候先生成一位數的,一位數生成滿了以後再生出兩位數的,兩位數滿了然後再三位數的,以此類推?
先獲取一位數的記錄,再從中隨機抽取一個,如果資料庫中沒有找到一位數的,就遞增一位數,直到找到為止。
3. 代碼的執行效率希望能越高越好!
如果想要代碼執行效率,最好盡量減少與資料庫的交互。
原創文章,作者:IWNQK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127963.html