【问题标题】:Codeigniter Message: Undefined variable: queryCodeigniter 消息:未定义的变量:查询
【发布时间】:2013-02-27 09:09:03
【问题描述】:

解决了!

感谢 Fabio,我意识到我在控制器的索引功能中遗漏了一些东西。


我正在开发一个视图,向我展示数据库中的数据。

现在我得到错误:消息:未定义的变量:查询。

我的模特:

<?php
class categorieen_model extends CI_Model{

    function categorieen_getall()
    {
        $this->load->database();
        $query = $this->db->get('Categorieen');

        return $query->result();
    }
}

?>

我的控制器

public function get_All()
{
    $this->load->model('categorieen_model');
    $data['query'] =
    $this->categorieen_model->categorieen_getall();

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

我的看法

<ul>
<?php foreach ($query as $row): ?>
    <?php echo $row->Categorie; ?>
<?php endforeach; ?>
</ul>

上周我在我的控制器/视图中使用相同的数据库、另一个表以及其他数据和名称进行了尝试,并且成功了。当我今天将其更改为我的新表时,它不再起作用了。

请帮忙

谢谢

【问题讨论】:

  • 查询是否返回任何行。在返回结果之前尝试执行print_r($query-&gt;result());
  • 它没有显示任何行,所以我会尝试你的建议
  • 我忘了告诉我还有一个错误。我把它贴在上面
  • 听起来您的查询没有返回任何结果,因此传递给视图的数组不包含任何数据,也无法循环。
  • 不知道为什么会这样,因为我的表中有数据,我认为代码很好。

标签: php mysql database codeigniter show


【解决方案1】:

您没有将 index 方法上的任何数据传递给视图

<?php
  class Home extends CI_Controller{

    public function index() {
      //add this code
      $this->load->model('Categorieen_Model');
      $data['query'] = $this->Categorieen_Model->categorieen_getall();
      $this->load->vars($data);
      //end of new code
      $this->load->view('header');
      $this->load->view('navmenu');
      $this->load->view('sidebar');
      $this->load->view('home');
      $this->load->view('sidebar2');
      $this->load->view('sidebar3');
      $this->load->view('footer');
    }

    public function get_All(){
      $this->load->model('Categorieen_Model');
      $data['query'] = $this->Categorieen_Model->categorieen_getall();

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

  }
?>

【讨论】:

【解决方案2】:

在你的控制器中使用它:

<?php 
if(is_array($query) && count($query)  > 0 ) { ?>
<ul>
<?php foreach ($query as $row): ?>
    <?php echo $row->Categorie; ?>
<?php endforeach; ?>
</ul>
<?php }?>

【讨论】:

  • &amp;&amp; count($query) &gt; 0 在这里很奇怪。如果没有元素,循环体将永远不会执行。
  • 你是说浏览量?这也不起作用。还是一样的错误。
  • 嗯,现在发生了一些变化。第二个错误消失了。但第一个错误仍然出现
  • 你能帮我解决这个问题吗?
【解决方案3】:

把你的控制器改成这个

public function get_All()
{
    $this->load->model('categorieen_model');
    $data['list'] =
    $this->categorieen_model->categorieen_getall();

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

并将视图更改为

<ul>
<?php foreach ($list as $row){?>
    <?php echo $row->Categorie; ?>
<?php } ?>
</ul>

【讨论】:

  • 不起作用。得到相同的错误只有列表不同 严重性:通知消息:未定义的变量:列表
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
相关资源
最近更新 更多