2013-08-20 29 views
1

幫助:一個PHP錯誤

I have error: 

一個PHP錯誤遇到

嚴重性:警告

消息:非法串偏移 'periode'

文件名:型號/k3m.php

行號:32

0123遇到

一個PHP錯誤

嚴重性:警告

消息:非法串偏移 '補欄'

文件名:型號/ k3m.php

行號:33

致命錯誤:調用第39行的C:\ LaporBOS \ htdocs \ laporbos3 \ application \ modules \ laporan_k3 \ models \ k3m.php中的非對象上的成員函數row()

function saldo_bank($param) { 
    $periode = $param['periode']; 
    $bulan = $param['bulan']; 
    $bulan = $this->get_bulan2($periode,$bulan); 
    $sql="SELECT IFNULL(SUM(IFNULL(jumlah_debet,0)),0) - IFNULL(SUM(IFNULL(jumlah_kredit,0)),0) AS saldo 
      FROM buku_bank 
      WHERE YEAR(tanggal) =".$this->session->userdata("tahun_anggaran")." 
      AND MONTH(tanggal) < $bulan"; 
    $data = $this->db->query($sql)->row(); 
    return $data->saldo; 
} 
+3

'$ param' param是一個字符串,但你把它當作一個數組來對待。 – Musa

+0

'var_dump($ param)'如果type是數組那麼問題是你沒有periode和bulan鍵,如果類型是'string'那裏你有它。 – tomexsans

回答

0

出現這種情況的,因爲你是在調用行()你已經調用的結果()之前,所以改變這種

$data = $this->db->query($sql)->row(); 

這個

$data = $this->db->query($sql)->result()->row(); 
+1

其實**之前發生錯誤**該行 – zerkms

+0

@ Justin-Sync-Favaloro: 此代碼不工作... :( – user2698252

+0

這有點難以分辨沒有行號,但我會假設即使在您修復另一個問題你仍然需要在row()之前添加result() –

0

數組內的偏移您通過不可用嘗試檢查您傳遞的數組 是否具有您調用的偏移量並將其設置爲變量。 檢查$參數數組不寫在你的函數

echo "<pre>"; 
print_r($param); exit; 

的頂部,也不願看到

$periode = $param['periode']; 

說,「periode」或「補欄」是存在的數組內與否。