2013年6月21日 星期五

create_report.php 的測試模式

昨天對資料庫做了一項重大變更, stock_settings 資料表加入 test_mode 欄位, 這樣要做測試時只要線上修改, 不需要改程式 :

//讀取 stock_settings (測試用)
$RS=search("stock_settings");
$test_mode=$RS[0]["test_mode"];   //"Y"=測試模式
$test_date=$RS[0]["test_date"];       //"Y"=測試日期
//製作今日日期
$today=date("Y-m-d"); //2011-12-10
if ($test_mode=="Y") { //測試模式時
    $YMD=explode("-", $test_date);
    $test_date=mktime(0,0,0,$YMD[1],$YMD[2],$YMD[0]); //時分秒月日年
    $today=date("Y-m-d",$test_date); //覆蓋 $today, 擷取測試日期之報告
    } //end of if
//讀取 report 資料表, 判斷本日是否已有報告
$SQL="SELECT * FROM `report` WHERE `date_time` LIKE '".$today."%'";
$RS=run_sql($SQL);
if ($test_mode=="Y") {$RS="";} //測試模式時以字串覆蓋陣列,允許重複產生報告
if (is_array($RS)) {echo "本日已有報告";} //工作模式,不允許重複產生報告
else { //本日未有報告, 進行擷取
        ...
       }

2013-06-22 註 :
後來在之前寫的程式發現用 list 更簡潔 :

if ($test_mode=="Y") { //測試模式時
    list($Y,$M,$D)=explode("-", $test_date); //分出年月日
    $test_date=mktime(0,0,0,$M,$D,$Y); //時分秒月日年
    $today=date("Y-m-d",$test_date); //覆蓋 $today, 擷取測試日期之報告
    } //end of if

沒有留言 :