2011-08-22 148 views
1

我打電話從兩個不同的函數兩次的功能,但它說的功能之一「試圖讓非對象的屬性」 第一個功能是試圖讓非對象的屬性笨

$sql=$this->db->query("select * from gl_events where entry_id='$entry_id'"); 
if($sql->num_rows() > 0) 
{ 
    $row3=$sql->row(); 
    $event_respond[] = 
     array(
      'entry_id'=>$row3->entry_id, 
      'event_title'=>$row3->event_title, 
      'location'=>$row3->event_loc_add_ln1, 
      'location1'=>$row3->event_loc_add_ln2, 
      'start'=>$row3->event_start_date, 
      'start1'=>$row3->event_start_time, 
      'created'=>$row3->user_id, 
      'about'=>$row3->event_descr, 
      'end'=>$row3->event_end_time, 
      'end1' => $row3->event_end_time, 
      'userid'=>$row3->user_id, 
      //here the function goes to gl_get_att function and 
      //calls gl_getusername function, 
      'attend'=>$this->gl_get_att($row3->entry_id), 
      // here it calls gl_getusername function directly 
      'username'=>$this->gl_getusername($row3->user_id) 
     ); 
} 

gl_get_att定義:

public function gl_get_att($entry_id) 
{ 
    $query=$this->db->query("select * from gl_event_participants where event_id='$entry_id'"); 
    //echo "select * from gl_event_participants where event_id='$entry_id'"; 
    $row1=$query->row(); 
    foreach($query->result() as $row) 
    { 
     $data[]= array(
      'user_id'=>$row->user_id, 
      'username'=>$this->gl_getusername($row->user_id)// here it calls get username function 
     ); 
    } 
    //print_r($data[1]); 
    //print_r($data[0]); 
    return $data; 
} 

gl_getusername定義:

public function gl_getusername($user_id) 
{ 
    $query=$this->db->query("select user_name from gl_user where user_id = '$user_id'"); 
    $row1=$query->row(); 
    //print_r($row1->user_name); 
    return $row1->user_name; //This is line 396 
} 

現在對於gl_get_att其返回正確的值,但第一個函數在那裏我可以把它叫做直接它不工作

error message: A PHP Error was encountered 
Severity: Notice 
Message: Trying to get property of non-object 
Filename: events/gl_event_model.php 
Line Number: 396 

線396上面標明

這是後上週六工作正常週末它不工作!奇怪

+0

添加'var_dump($ user_id);'作爲'gl_getusername'函數的第一行。很可能你第二次調用'gl_getusername'時,你傳遞null或一些無效的數據。 – J0HN

回答

3

您不檢查以查看$query是否有效,或者$ query-> row()返回一個對象。如果在數據庫中未找到傳入的$entity_id,則會生成此錯誤。

+0

我已經檢查$查詢其工作正常gl_get_att 我想要做的是我得到的用戶名列表gl_get_att,我得到它的正確輸出。但它在第一個功能中不起作用。當我print_r($ row1-> user_name);它爲gl_get_att()打印,但對於上面的函數,在同一行上有一個錯誤,說試圖獲取非對象的屬性 – gklaxman

+0

對不起,問題已解決!!!! 謝謝@Dough Kress !!!查詢獲取沒有結果dat是原因 – gklaxman