2011-01-22 68 views
0

大家好我有一個問題,我的信息沒有被髮送到我的視圖文件。codeigniter不會顯示數據庫中的信息

它說:消息:未定義的變量:queryWall

我的控制器是該

function wallShow() 
{ 
    $this->load->model('profil_model'); 
    $data['queryWall'] = $this->profil_model->wallGet($this->uri->segment(3)); 


    $data['content'] = 'profil_view'; 
    $this->load->view('includes/template', $data); 
} 

我的模型:

function wallGet($name) 
{ 
    $this->db->select('profileName', 'wallComment'); 
    $this->db->where('profileName', $name); 
    $queryWall = $this->db->get('profileWall'); 

    if($queryWall->num_rows() > 0) 
    { 
    return $queryWall->result(); 
    } else { 
    return false; 
    } 
} 

和我的視圖文件

<?php 
if(!isset($queryWall)): 
    foreach ($queryWall as $wall): 
    echo $wall->wallComment; 
    endforeach; 
endif; 
?> 
+1

嘗試在您的模型方法中打印出您的查詢結果...在wallGet($ name)函數中嘗試$queryWall->result(),查看是否選擇了任何數據 – Andreyco 2011-01-22 19:01:49

+0

好吧我嘗試將它回顯出來,我只有數組,所以沒有任何內容:S,我試試這個$ this-> db-> where('profileName','123');我知道在數據庫中有一些東西:S – simon 2011-01-22 20:39:34

回答

4

即使如果一切都是好吧,你會不斷收到這個錯誤,因爲你使用的是queryWall變量,只要它是不是定義!

if(!isset($queryWall)) 

它應該是:

if(isset($queryWall)) 

但因爲你是路過的條件檢查,那麼我想你有什麼問題與您的模型或URI段。

3

您沒有使用正確的語法

$this->db->select('profileName', 'wallComment'); 

將其調整爲這樣:

$this->db->select('profileName,wallComment'); 

然後還使了探查,以驗證您的查詢是由數據庫類正確寫入。在您的控制器中,啓用Profiler:

$this->output->enable_profiler(true); 

這可以插入控制器功能的任何位置。

我同意ifaour關於確保你的if語句是你的意思是。