如何将一个数组从控制器发送到视图,以显示它的代码点火器


how to send an array from controller to view to show it codeigniter

我是codeigniter的新手,我在下面的模型中有一个简单的查询:

    function showbook(){
            $number_test =10;
            $this->db->select('qid, question, q_type');
            $this->db->from('qbank');
            $this->db->where('q_type',2);
            $this->db->limit($number_test);
            $query = $this->db-> get();
            return ($query->result());
    }

所以在我的控制器中,我想将查询结果存储到一个变量中,然后发送到视图中并在其中使用它,这就是我的控制器:

public function show(){
        $this->load->model('add_book_model');
         $data['stuff'] = $this->add_book_model->showbook();
        foreach ($data as $row)
{
    $question[] = $row->question;
    // echo $row->question;
}
$this->load->view('desktop/view_book',$question);
    }

最后,这是我的观点的一部分,我想呼应结果。我想知道,处理模型中的数据并将其保存在控制器中的变量中并将其发送到视图是正确的吗?我的意思是,这是MVC在代码点火中的真正含义吗?如果是,我的错误是什么?

<?php
    print_r ($question[]);
    ?>

在模型中尝试此

function showbook(){
        $number_test =10;
        $this->db->select('qid, question, q_type');
        $this->db->from('qbank');
        $this->db->where('q_type',2);
        $this->db->limit($number_test);
        $query = $this->db-> get();
        return $query->result();
}

控制器内

$this->load->model('add_book_model');
   $data['result'] = $this->add_book_model->showbook();
   $this->load->view('desktop/view_book',$data);
}

现在,您可以使用foreach循环访问结果数组

foreach($result as $row){
    echo $row->qid;
    echo $row->question;
    echo $row->q_type;
    }

如果你在html中回显值,试试这个

<table>
<th>qid</th>
<th>question</th>
<th>question type</th>
foreach($result as $row){
<td><?php echo $row->qid; ?></td>
<td><?php echo $row->question; ?></td>
<td><?php echo $row->q-type; ?></td>
        }
</table> 

在您的模型中使用返回result_array而不是result

function showbook(){
        $number_test =10;
        $this->db->select('qid, question, q_type');
        $this->db->from('qbank');
        $this->db->where('q_type',2);
        $this->db->limit($number_test);
        $query = $this->db-> get();
        return ($query->result_array());
}

在您的控制器中

   $this->load->model('add_book_model');
   $data['stuff'] = $this->add_book_model->showbook();
   $this->load->view('desktop/view_book',$data);
}

最后在视图中:

<?php 
if(!empty($stuff)) {
    foreach ($stuff as $single_stuff) {
        print_r ( $single_stuff['question'] );
    }
}
?>

试试这个控制器内

public function show(){
    $this->load->model('add_book_model');
    $data['stuff'] = $this->add_book_model->showbook();        
    $this->load->view('desktop/view_book',$data);
}

在你看来

foreach($stuff as $value){
  echo $value->question;
}