0

データベースのデータをCodeigniterビューで表示しようとしています。単純なはずですが、機能していません。

2つのエラーが発生します。未定義の変数(ビュー内の$ movielist)と、ビュー内のphpforeachの無効な引数です。

これを機能させる方法はありますか?以下のコード。

コントローラ

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

(クエリで行が見つからない場合は、が返され、ビューnullundefinedエラーが発生します。無効な引数エラーは、を繰り返すことができないためです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 */
}

Activerecordの使用もお勧めします:

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 に答える