バージョン選択

フォーラム

メニュー

オンライン状況

52 人のユーザが現在オンラインです。 (48 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 52
もっと...

サイト内検索

質問 > その他 > 注文番号について

その他

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
blue3
投稿日時: 2016/6/30 9:37
対応状況: −−−
新米
登録日: 2016/6/24
居住地:
投稿: 9
Re: 注文番号について
日付はcreateDateから取得もシステム日付から取得も変わらないということを忘れていたためシステム日付から取得するように変更し、上記課題は解決できました。

形式は変更し、mmddyyとランダム4桁(0〜9を10の配列に格納しシャッフルし並び替え後の4桁を取得する形です)
以下が、作成したコードになります。

public function getCustomizeOrderId() {
$num = 4;
$array = range(0, 9);

// 注文日をシステム日付から取得する
$today = date("y/m/d");
$year = substr($today, 0, 2);
$month = substr($today, 3, 2);
$day = substr($today, -2);

$flg = 0;

while ($flg == 0) {
shuffle($array);
$orderNum = substr(implode($array), 0, $num);

// 注文番号を10桁に結合する(月+日+年+ランダム4桁)
$orderId = $month.$day.$year.$orderNum;

// TODO DBを確認し、同じ注文番号がないこと。

if (カウント結果 == 0) {
$flg = 1;
}
}
return $orderId;
}

しかし、このままではランダムの並べ替えのため必ずしもかぶりが出ないとは限りません。日付違いでのランダム部分の被りはよいのですが…
そのため、一度結合させたのちにDBに重複する注文番号が存在しないことを確認しないといけません。

そこで、以下のようなSQLで同じ注文番号がないことを確認します。

SELECT COUNT(o.order_number)
FROM dtb_order o
WHERE o.order_number = 結合した注文番号

order_numberは別途自分で作成した、カスタマイズした注文番号が格納されているカラムです。

この場合、ここで書くSQLはどのように書けるのでしょうか?
ヒントのご教示をいただければ幸いです。
よろしくお願いいたします。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   注文番号について blue3 2016/6/29 14:50
   » Re: 注文番号について blue3 2016/6/30 9:37
       Re: 注文番号について blue3 2016/6/30 9:55
         Re: 注文番号について blue3 2016/6/30 12:00
         Re: 注文番号について yuh 2016/6/30 12:42
           Re: 注文番号について blue3 2016/6/30 13:32

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,724名です
総投稿数は109,953件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1286
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.