2011-01-22 43 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语句是你的意思是。