2013-09-30 50 views
0

嗨,我正在關注一個學習CodeIgniter的NetTutsCodeIgniter什麼也沒有發生數據庫

我有一個模型,一個視圖和一個控制器參與。

的型號:

class Data_model extends CI_Model{ 
    function getAll(){ 
     $data = array(); 

     $q = $this->db->query("SELECT * FROM data"); 
     if($q->num_row() > 0){ 
      foreach($q->result() as $row){ 
       $data[] = $row; 
      } 
      return $data; 
     } 
} 

}

的觀點:

<html> 
<head> 
     <title></title> 
</head> 

<body> 
     <p>View loaded</p> 
     <?php 
      foreach ($rows as $r){ 
       echo '<h1>',$r->title,'</h1>'; 
      } 
     ?> 
</body> 

控制器:

class Site extends CI_Controller { 

function index(){ 
     $this->load->model('data_model'); 
     $data['rows'] = $this->data_model->getAll(); 

     $this->load->view('home'); 
} 
} 

問題是我沒有得到一個錯誤,只是一個空白頁面。我究竟做錯了什麼?感覺就像我正在從教程中做一切事情?

回答

0

到$ data變量傳遞給視圖這並不工作:

class Data_model extends CI_Model{ 

function getAll(){ 
$data = array(); 
$q = $this->db->query("SELECT * FROM data"); 


    $data= $q->result(); //result_array() will fetch as arrays and not objects 
    return $data; 


} 
} 

但這dosn」 t:

class Data_model extends CI_Model{ 
function getAll(){ 
$data = array(); 
$q = $this->db->query("SELECT * FROM data"); 

if($q->num_row() > 0){ 
    $data= $q->result(); //result_array() will fetch as arrays and not objects 
    return $data; 
} 

} 
} 

但爲什麼會這樣這種情況甚至是正確的(這甚至是答案),通過移除這個IF語句可以達到什麼後果?

+0

在這裏犯了一個愚蠢的錯誤:if($ q-> num_row()> 0){'將是'if($ q-> num_rows()> 0){'。在'num_rows()'中注意's'。 :d –

5

在控制器:

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

建議的模式:

function getAll(){ 
    $data = array(); 
    $q = $this->db->query("SELECT * FROM data"); 
    if($q->num_row() > 0){ 
     $data = $q->result(); //result_array() will fetch as arrays and not objects 
     return $data; 
    } 
} 

嘗試,因爲它已經被Paul給這一個:

echo '<h1>' . $r->title . '</h1>'; 

轉到根/索引。 PHP和更改environmentdeveloping以查看生成的錯誤PHP。

+0

感謝您的回答,但沒有任何反應...... –

+0

define('ENVIRONMENT','development');但我仍然沒有得到任何東西...... –

+0

在這裏犯了一個愚蠢的錯誤'if($ q-> num_row()> 0){'將是'if($ q-> num_rows()> 0){'。在'num_rows()'中注意's'。 :D –

2

另外,我覺得在你查看你必須做出這樣的變化:

echo '<h1>' . $r->title . '</h1>'; 
3

在模型中,

$q->num_row() 

需要改變,以

$q->num_rows() 

而且,您也需要參考特定列

$data[] = $row->column_name; 

在您的控制器中,逗號需要用句點替換。逗號不正確的語法

foreach ($rows as $r) { 
    echo '<h1>'.$r->title.'</h1>'; 
} 

最後,你需要做

$this->load->view('home', $data); 
相關問題