iT邦幫忙

4

PHP創世錄(輪迴+單筆超度)

歡迎各位來討論FOR輪迴,從本章節開始,俺會用另外一種方式跟大家分享PHP,
也歡迎各位一起討論一起進步!!
俺一開始開發的時候對整批資料處理非常的弱,俺那時候只會處理單筆資料,以下是俺以前的CODE,因為俺使用CI框架開發,所以有些語法不同,不過結果相同.
以下是一個資料過帳的code,當初俺只會處理單筆,所以使用for(輪迴),以下我會用註解來講解.

//俺的分類裡面的一個方法
        function StoH() 
    {
/*$m=俺前頁的表單使用POST傳送資料,然後表單裡面有個下拉式選單name=Month (月份)*/
        $m=  $this->input->post('Month');
/*$aaa=sequestration資料表總筆數*/
        $aaa=$this->db->count_all('sequestration');
/*宣告一個變數$d=1,當$d小於等於表單總筆數時,變數$d累加*/
         for($d = 1 ; $d <=$aaa ;$d++)
           {
/*$dn=一個陣列就是撈資料表挑選欄位ID=$d的所有資料*/
               $dn= $this->db->where('ID',$d)->get('sequestration');
/*再來俺使用foreach,把$dn的資料給用出來*/
               foreach($dn->result_array() as $row)
               {
/*再來就是更新資料(history),兩個條件ID=剛剛撈出的sequestration資料表的ID欄位,還有Class欄位=字串(Cove),再來把sequestration資料表的Checkout欄位寫進$m(這個是月份欄位)*/
                  $this->db->where('ID',$row['ID'])->where('Class',"Cove")->set($m,$row['Checkout'])->update('history');                  
               }
           }
/*再來把sequestration資料表裡面的Checkout歸0*/
           $this->db->set('Checkout',0)->update('sequestration');
/*回到某個頁面*/
       redirect("http://localhost/mes/index1.php/mes_view/history");             
    } 

俺表達能力比較差(詞窮),所以請多多見諒~~!

大家可以討論一下,看大家什麼時候會用到for還有foreach,提供一下經驗給後人學習吧!!


1 則留言

0
Samと可樂快跑
iT邦研究生 1 級 ‧ 2013-01-18 19:03:00

排版要多加油一下。
這樣別人會看不懂。

另外就是,我建議你在討論這些東西不要立即帶入框架(framework)。
$this->db->什麼碗糕()
這樣的東西如果對物件不熟又沒用過CI或是其他framework的人,會無法理解你到底是
想講那一段。
除非大家討論的是同一件事情。(你無法預設別人用什麼框架甚至根本沒有用到)
你要討論for或是foreach就針對語法說明即可。
另外就是我講過的,過度的註解比沒有註解還糟糕喔。
如果你認為你的註解是需要解釋給別人看得懂的東西。
那就不是你的問題,是別人的問題。
註解不是寫給完全看不懂code的人看的。
訓練一個程式設計師要看得懂註解。
大概是像這樣子:

&lt;pre class="c" name="code">
/**************************
*  功能:取得單位時間內的資料
*  getTimeData(起始時間,終止時間)
*/
function getTimeData($startTime,$endTime){
    程式碼....
}

寫功能是這樣,沒必要連功能內的東西要做啥都得一行一行解釋出來。
如果你是在探究指令的基本層面,那就以指令本身做為探討而不要加多餘的東西進來會比較好。

受教了~~!
謝謝SAM大
謝謝謝謝

我要留言

立即登入留言