2015-05-30 58 views
0

我有一個名爲「新聞」有三列的表:「身份證」,「標題」和「細節」笨PHP MVC

我有一個笨模型類中的函數(「get_entry」)(稱爲「 News_model')

function get_entry() 
    { 
     $this->load->database(); 
     return $this->db->select('id,title,details')->from ('news'); 
     $data['newsarray'] = $this->db->row_array();  
     return $data['newsarray']; 
    } 

我連接到數據庫,這樣是不是疑難問題。希望通過調用與followlwing代碼的控制文件中的函數返回從get_entry()的迭代陣列。我想用下面的代碼將它推入另一個數組(稱爲'$ data ['theNews']')。

foreach ($this->News_model->get_entry() as $key => $value){ 
      array_push($data['theNews'],$value->title); 
     } 

我一直在使用這個(https://ellislab.com/codeigniter/user-guide/general/models.html)的代碼作爲模板(尤其是功能「get_last_ten_entries()」,但我覺得我是密切與我上面貼的代碼。我希望得到任何幫助。

+0

您的'get_entry'函數只能重排1行。如果你想迭代多行 - 重寫你的函數,以便返回10個或更多結果。 –

+0

請發佈您在$ data ['newsarray']中獲得的內容' – Avinash

+1

內置代碼片段僅適用於JavaScript/HTML/CSS ... **您無法在OP **中運行PHP。刪除。謝謝。 – Sparky

回答

1

關於你的代碼:

您的get_entry函數的兩個 '迴歸':

function get_entry() 
{ 
    $this->load->database(); 
    // First 
    return $this->db->select('id,title,details')->from ('news'); 
    $data['newsarray'] = $this->db->row_array();  
    // Second 
    return $data['newsarray']; 
} 

將其更改爲:

function get_entry() 
{ 
    $this->load->database(); 
    $query = $this->db->select('id,title,details')->from('news'); 
    $data['newsarray'] = $query->row_array();  
    return $data['newsarray']; 
} 

它現在應該可以工作。

一些建議:

不要使用笨2了。 Version 3 is alive

如果打算返回整個表列,我建議你使用下面的代碼查詢:

$query = $this->db->get('news', 1, 20); 

其中,1,20是極限。

現在你可以得到的結果:

return $query->result(); 

一個簡單的例子:

function get_entry() 
{ 
    $this->load->database(); 
    $query = $this->db->get('news', 1, 20); 
    return $query->result(); 
} 

此方法返回的查詢結果,你可以在你的控制器印像這樣對象的數組:

$news_array = $this->News_model->get_entry(); 
foreach ($news_array as $news) 
{ 
     echo $news->id; 
} 

查看CI 3 Query Builder查詢生成器的更多示例。

還有一個建議,只需自動加載數據庫庫application/config/autoload.php如果您全球需要它。

+0

星號不是代碼的一部分。只需使用註釋來指示該行。 '// < - 此行' – Sparky

+0

是的,我忘了刪除星號,謝謝。 :) – Kvash

+0

你可以請張貼錯誤? 您正在使用哪些代碼?第一個還是最後一個例子? – Kvash

1

在函數的代碼變更爲這個工作:

function get_entry() 
    { 
     $this->load->database(); 
     $query = $this->db->get('news'); 
     //return $query->result(); 

     foreach ($query->result() as $row) 
     { 
      echo "</br>"; 
      echo $row->id; 
      echo "</br>";  
      echo $row->title; 
      echo "</br>"; 
      echo $row->details; 
      echo "</br>"; 
     } 

    } 

調用函數像這樣打印出來:

$ news_array = $這個 - > News_model-> get_entry();