codeigniter不会显示数据库中的信息

时间:2011-01-22 18:58:08

标签: codeigniter model view controller foreach

大家好,我的问题是我的信息没有发送到我的视图文件。

它说:消息:未定义的变量: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;
 ?>

2 个答案:

答案 0 :(得分:4)

即使一切正常,您仍会收到此错误,因为只要 NOT 定义,您就会使用queryWall变量!

if(!isset($queryWall))

应该是:

if(isset($queryWall))

但是由于您通过了条件检查,我认为您的模型或URI段有问题。

答案 1 :(得分:3)

您没有使用

的正确语法
$this->db->select('profileName', 'wallComment');

将其调整为:

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

然后还启用out profiler来验证数据库类是否正确编写了查询。在控制器中,启用探查器:

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

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

我同意ifaour关于确保你的if语句是你的意思。