【问题标题】:simple codeigniter query + results display won't display简单的codeigniter查询+结果显示不会显示
【发布时间】:2012-05-06 15:35:57
【问题描述】:

我正在尝试在 Codeigniter 视图中显示我的数据库中的数据。看起来应该很简单,但它就是行不通。

我收到 2 个错误:未定义的变量(视图中的 $movielist)和 php foreach 的无效参数,也在视图中。

知道如何让它工作吗?代码如下。

控制器

function displayMovies() {

$this->load->model('movie_list_model');

$data['movielist'] = $this->movie_list_model->getList();

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

型号

function getList() {

        $query = $this->db->query('SELECT firstname, lastname, favorite_movie FROM movies');
        return $query->result();


        if ($query->num_rows() > 0) {

        foreach ($query->result_array() as $row)
        {
             echo $row['firstname'];
             echo $row['lastname'];
             echo $row['favorite_movie'];
        }   
    }

查看

      <?php foreach($movielist as $mlist)
        {
            echo  $mlist->firstname . '<br />'; 
            echo  $mlist->lastname . '<br />'; 
            echo  $mlist->favorite_movie; 
        }
      ?>

【问题讨论】:

    标签: mysql codeigniter codeigniter-2


    【解决方案1】:

    如果(查询没有找到任何行,它将返回null,导致您的视图出现undefined 错误。无效参数错误是因为您无法遍历null

    安全性将包括在您的视图中这样的内容:

    if($movielist)
    {
        /* foreach() {} */
    }
    

    此外,您的模型应该只返回数据(而不是回显它)。

    function getList() {
        $query = $this->db->query('SELECT firstname, lastname, favorite_movie FROM movies');
        return $query->result(); /* returns an object */
        // Alternatively:
        // return $query->result_array(); /* returns an array */
    }
    

    我也推荐使用Active record:

    function getList() {
        $this->db->select('firstname');
        $this->db->select('lastname');
        $this->db->select('favorite_movie');
    
        $query = $this->get('movies');
        return $query->result();
    }
    

    祝你好运!

    【讨论】:

    • 感谢您的回复。我不再收到“php foreach 的无效参数”——我添加了您建议的 if 语句。但我仍然得到 $movielist 的“未定义变量”。知道为什么该变量未被识别为已定义吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    相关资源
    最近更新 更多