CGI-BBS > SO−HO > ショッピングバスケット > 簡易バスケットに受注番号を設置したい。


カレッヂ
カレッヂ


質問者 受注番号  投稿日 10/17(金) 00:55:17  [削除] (返信・回答が付いた後にこの質問の削除はできません)
質問.1
下記文章を参考に設置してみたのですが、もし同じ時刻(秒)に注文が2個きてしまうと
受注番号は同じになってしまうのでしょうか?もしそうならそれを防ぐ
(同じ受注番号が出来ない)方法はありますでしょうか?

質問.2
注文時に自動で
注文内容をデーターベース化(エクセル.アクセスへの出力)することはできますか?

ど素人なので詳しく教えていただけると大変助かります。宜しくお願い致します。

質問者 まっちゃん  投稿日 1/17(木) 17:26:06 
--------------------------------------------------------------------------------
いつもお世話になりありがとうございます。

以前、http://www.rescue.ne.jp/CGI-BBS/soho/cargo/20011203185447.shtml
[簡易ショッピングバスケットで受注番号] で呑兵衛@大阪さまがお答えになっていたのですが
この分に$yearをたそうと思ってやってみたのですが

#受注番号取得
($sec,$min,$hour,$mday,$month,$year) = (localtime(time))[0,1,2,3,4,5];
$month += 1;
$year += 1900;
$order_num = "$year$month$mday$hour$min$sec";

としたのですが何故かでてくるのは
2002117121211
といったように月の前の0がつきません。何故でしょう?
本当なら
20020117121211
になるはずですよね!

初歩的な質問でこの掲示板を使わせていただき申し訳ございませんが
よろしくお願いいたします。 
回答者 しあわせのツボ  [削除]  投稿日 1/17(木) 18:20:22 
--------------------------------------------------------------------------------
このスクリプトだと、月以外の数字も桁合わせをしていませんね。
たとえば朝の6時とかだと、そこも詰まるはずです。

全て2桁(年は4桁)で出力させるには、
#受注番号取得
($sec,$min,$hour,$mday,$month,$year) = (localtime(time))[0,1,2,3,4,5];
$order_num = sprintf("%04d%02d%02d%02d%02d%02d", $year+1900,++$month,$mday,$hour,$min,$sec);
のようにすればよいでしょう。 

プロバイダ参照:
サーバのOS:WINサーバ
パソコンのOS:WinNT系
エディタ:秀丸
FTPソフト:FFFTP
サーバ移転:していない
改造:している 改造前正常動作
CGI習熟度:beginner

返信(回答)する

 


Web裏技