2016-10-03 19 views
0

它可以很好地用於leave_type = 11leave_type = 3仍然將其插入0 不知道如何解決這個不想在半天和空頭離場的情況下插入0值

leave_type = 3是半天 leave_type = 11是短暫的離開天

'days' => ($this->input->post('leave_type') == 3) ? 0.5 : ($this->input->post('leave_type') == 11) ? 0 :$days_between , 

請提供解決方案

+0

首先從最後刪除逗號並添加分號,然後檢查您的數據庫字段是否爲整數類型,然後使其浮動。 –

回答

1

這是因爲你沒有將你的三元運算符分組。

($this->input->post('leave_type') == 3) ? 0.5 : (($this->input->post('leave_type') == 11) ? 0 :$days_between) 
               ^         ^

的這裏的解釋是,因爲在你的原代碼,它計算在左邊,這是($this->input->post('leave_type') == 3) ? 0.5 : (($this->input->post('leave_type') == 11)

哪,你的情況,應該是0.5第一條件。但是,因爲右側有另一個三元運算符,所以0.5將被轉換爲布爾值類型,該類型將爲true。因此,由於傳遞給下一個三元運算符的評估爲,因此返回值將爲0

true ? 0 : $days_between 
+0

thankew其工作:) @Rax – Ghugu

1

請嘗試以下:

'days' => ($this->input->post('leave_type') == 3) ? '0.5' : (($this->input->post('leave_type') == 11) ? 0 :$days_between) , 
+0

非常感謝您的幫助@Dipanwita :) – Ghugu

+0

非常歡迎:) –

1

這與您的數據庫字段數據類型有關。您必須將該字段數據類型設置爲整數。您需要將其設置爲浮點型。

+0

thankew它的工作:) @Dinesh – Ghugu

相關問題