2012-10-15 37 views
1

我有模特這樣笨爆炸未定義偏移

function getlastval($prefix,$namatable, $namafield) 
{ 
    $this->db->order_by($namafield,'DESC'); 
    $key = $this->db->get($namatable); 

    if($key->num_rows()>0) 
    { 

     $lastval= $key->row()->Kode_Material_Jasa; 
     $lastval = explode($prefix,$lastval); 
     $lv = $lastval[1]; //line 18 refer to this line 
     //return ltrim($lv, '0'); 
     } 
    else 
    { 
     return 0; 
    } 
} 

function gencode($prefix, $digit, $lastval) 
{ 
    return $prefix . str_pad($lastval+1, $digit, '0', STR_PAD_LEFT); 
} 

它的工作較早的控制器

function addkategorimaterial() 
{ 
    $this->load->model('m_admin'); 
    $lastval = $this->m_admin->getlastval('KKMJ','ms_kategori_material','Kode_Kategori_Material_Jasa'); 
    $data['nextval'] = $this->m_admin->gencode('KKMJ',3,$lastval); 
    $data['title'] = 'QB Tambah Kategori Material'; 
    $this->load->view('head',$data); 
    $this->load->view('content/add_kategori_material'); 
} 

返回KKMJ001但後來它不工作的其他控制器上

 $this->load->model('m_admin'); 
$lastval = $this->m_admin->getlastval('KMJ','ms_material_jasa','Kode_Material_Jasa'); 
    $data['nextval'] = $this->m_admin->gencode('KMJ',3,$lastval); 
    $data['kkmj']=''; 
    $data['title'] = 'QB Tambah Material/Jasa'; 

    print_r($data['nextval']); 
    print_r($lastval); 

所以函數將返回KMJ001和錯誤是這樣的

enter image description here

我該如何解決呢?

+1

能否請您編輯您的問題,後用什麼線18是你的文件。謝謝。 –

+0

@EricLeroy我猜這是'$ LV = $ lastval [1];' – Phil

+0

我假設18行是這樣的:$ LV = $ lastval [1]; –

回答

0

我不認爲explode()是你以後的功能。 explode()函數通過分隔符將字符串拆分爲數組。

它並不需要一個「前綴」,因爲它是爲你選擇(語義)的第一個參數。它將分隔符作爲第一個參數。

既然你傳遞KMMJ作爲分隔符,你會得到的1數組索引的唯一方法是,如果字符串從$key->row()->Kode_Material_Jasa;返回是一樣的東西:fooKMMJbar,這將產生:array('foo', 'bar') ...這是非常不可能的。

無論如何,你叫getlastval('KMJ'...)getlastval('KMMJ'...),你確定他們不應該是一樣的?