简单的codeigniter查询+结果显示将不会显示

时间:2012-04-25 21:50:46

标签: mysql codeigniter codeigniter-2

我正在尝试在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; 
        }
      ?>

1 个答案:

答案 0 :(得分:1)

如果(查询找不到任何行,它将返回null,导致视图中出现undefined错误。无效参数错误是因为您无法迭代{{ 1}}。

安全性会在您看来包含类似内容:

null

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

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

我还建议使用Active record

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 */
}
祝你好运!