0

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

1 回答 1

1

if( 查询没有找到任何行,它会返回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 */
}

我还建议使用活动记录

function getList() {
    $this->db->select('firstname');
    $this->db->select('lastname');
    $this->db->select('favorite_movie');

    $query = $this->get('movies');
    return $query->result();
}

祝你好运!

于 2012-04-25T22:01:58.447 回答