// 找到現在的「時間」 $ymdh = date('Y/m/d H');// 用現在的時間找出訂單目前是有幾筆 $findOrderSoFar = mysqli_fetch_array($pdo->query( "SELECT count(public_order_id) as num FROM `order_record` WHERE FROM_UNIXTIME(add_time, '%Y/%m/%d %H') = '{$ymdh}' "));// 將 $i 直接加入目前幾筆的數量 $i = $findOrderSoFar['num'];// 如果找到零比則從一開始 $findOrderSoFar['num'] == 0 ? $i = 1 : $i = $findOrderSoFar['num'];// 開始迴圈while ($row = mysqli_fetch_array($sql)) { // 設定訂單編號長相 $_SESSION['public_order_id'] = substr(date('YmdH', time()), -8).str_pad($i, 4, '0' ,STR_PAD_LEFT); // ... $i ++; }
我目前作法是这样,但是却还是会「重复流水号」
就是不同使用者同时下订时仍然会有这情形发生
我的逻辑已经死了LOL ..
订单编号格式会是:
YYMMDDHH0001
YYMMDDHH0002...
但是到了下一个小时,就会变回YYMMDDHH0001