codeigniter 不会显示来自数据库的信息
Posted
技术标签:
【中文标题】codeigniter 不会显示来自数据库的信息【英文标题】:codeigniter will not show info from database 【发布时间】:2011-01-22 18:58:08 【问题描述】:大家好,我有一个问题,我的信息没有发送到我的视图文件。
它说:消息:未定义的变量: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;
?>
【问题讨论】:
尝试在您的模型方法中打印出您的查询结果...尝试$queryWall->result()
在 wallGet($name) 函数中,看看是否是否选择了任何数据
好吧,我尝试回显它,但我只得到了 Array ,所以里面什么都没有:S,我试过这个 $this->db->where('profileName', ' 123');我知道数据库中有一些东西:S
我假设,在您的模板视图中,您正在调用一个名为“profile-view”的子视图。您是否将 $data 或 $queryWall 传递给该子视图?也许您可以将模板视图的这一部分添加到您的问题中,以便我们提供更好的帮助。
【参考方案1】:
即使一切正常,您仍会收到此错误,因为您使用的是 queryWall
变量,只要它未定义!
if(!isset($queryWall))
应该是:
if(isset($queryWall))
但是由于您通过了条件检查,那么我想您的模型或 URI 段有问题。
【讨论】:
【参考方案2】:你没有使用正确的语法
$this->db->select('profileName', 'wallComment');
将其调整为:
$this->db->select('profileName,wallComment');
然后还启用 out profiler 以验证您的查询是否由数据库类正确编写。在您的控制器中,启用分析器:
$this->output->enable_profiler(true);
这可以插入到控制器函数的任何地方。
我同意 ifaour 关于确保你的 if 语句是你的意思。
【讨论】:
+1 用于在他的代码中捕获 2nd 错误!所以基本上我的回答和你的回答应该可以解决他的问题。 我如何需要 $this->output->enable_profiler(true);,我已经做出了改变,但它仍然没有显示任何东西:S 阅读输出类的文档以获得对分析器的完整说明,以及如何使用它。 codeigniter.com/user_guide/libraries/output.html。探查器报告中的查询是什么样的? 没什么变化,它仍然显示未定义变量:queryWall :S 查看我对上述问题的评论以上是关于codeigniter 不会显示来自数据库的信息的主要内容,如果未能解决你的问题,请参考以下文章