2011-02-07 67 views
0

我一直都在發生這種情況,我從來不確定它爲什麼會發生。這裏是我的模型查詢:Codeigniter返回非對象

$query = $this->db->query('SELECT * FROM members WHERE email = "' . $this->session->userdata('email') . '"'); 
     return $query; 

我嘗試這個輸出在我看來有:

foreach($query->result() as $row) {...echo $row->name, etc.} 

但我得到一個錯誤:

Fatal error: Call to a member function result() on a non-object ... 

我跑的探查和我的查詢是有效的,並且數據庫中的數據被拉取。那麼我做錯了什麼?

+1

老實說,我們需要更多的代碼來充分地爲您提供幫助。 – jondavidjohn 2011-02-08 02:09:07

+0

確切複製http://stackoverflow.com/questions/4714802/codeigniter-problem-retrieving-and-displaying-data-from-db – jondavidjohn 2011-02-08 02:37:02

+0

沒有違法,jondavidjohn,但解決方案是不同的。查看兩種可接受解決方案之間的差異。 – sehummel 2011-02-08 15:57:52

回答

3

試試這個。

在你的模型:

function get_members() 
{ 
    $query = $this->db->query('SELECT * FROM members WHERE email = "' . $this->session->userdata('email') . '"'); 
    return $query->result(); 
} 

在你的控制器:

您應該然後在您的控制器指定從數據庫中的數據,以你的觀點,像這樣。

$data['query'] = $this->yourmodel->get_members(); // Data['query'] will be turned into $query in your view. 

$this->load->view('mytemplate', $data); 

您認爲:

foreach($query as $row) {...echo $row->name, etc.} 
0

如果將$query變量傳遞給視圖,codeigniter會將其轉換爲鍵控數組(如果它是對象)。

http://codeigniter.com/user_guide/general/views.html

Note: If you use an object, the class variables will be turned into array elements.

編輯:

在你的控制器:

$query = // do whatever to get the $query. 
$members = array(); 
foreach($query->result() as $row) { 
    $members[] = $row; 
} 
//send $members to view 

鑑於:

foreach($members as $member) { 
    echo $member['name']; // etc 
}