如何从控制器获取查询中的数据


How to get data from a query back from the controller

我有一个关于如何将我在模型中查询的数据检索到我的控制器并将其传递到我的视图中的问题。

控制器:

class View_book_controller extends CI_Controller {
function __construct() {
    parent::__construct();
    $this->load->helper('cookie');
    $this->load->helper('url');
    $this->load->library('session');
}
function loadView() {
    $this->load->model('view_book_model');
    $postlist['studentID'] = $this->input->get_post('studentID');
    $this->view_book_model->getBookList();
    $this->load->view('viewbooks.php', $postlist);
 }
}

型:

class View_book_model extends CI_Model {
function getBookList() {
    $query = $this->db->query("SELECT * from books");
    if($query->num_rows() > 0 ) {
        return true;
    }
    else {
        return false;
    }
}
}

这是它的观点。我想将数据放在表中并像列表一样查看它。

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta charset='UTF-8'>
<link rel="stylesheet" href="<?=base_url(); ?>/public/css/tables.css"/>
<script src="<?=base_url()?>/public/js/jquery.js"></script>
 </head>
<body>
    <input type="hidden" value = "<?php echo $studentID; ?>"/>
    <h3> Search books </h3>
    <input type="text"> </input>
    <input type="submit" value="Search"> </input>
    <br><br>
    <?php
        echo '<hr>';
        echo '<h3> Book List </h3>';
        echo '<table id="maintable"  class="table">';
            echo '<th> Book ID</th>';
            echo '<th> Book Title </th>';
            echo '<th> Book Author </th>';
            echo '<th> Quantity </th>';
            echo '<th> On-hand </th>';
            echo '<tr>
                    <td>1</td>
                    <td>An Abundance of Katherine</td>
                    <td>John Green</td>
                    <td>10</td>
                    <td>5</td>
                 </tr>';
        echo '</table>';
    ?>
</body>
 </html>

模型

首先,确保模型返回行。在你的代码上,你只返回布尔值而不是数组|记录对象。因此,您可以这样做:

检查如何在编码器点火器中生成结果。

class View_book_model extends CI_Model {
    function getBookList() {
        $query = $this->db->query("SELECT * from books");
        return $query->result();
    }
}

控制器

在您的控制器上,将模型记录存储在数组$postlist,例如,我将其作为book_list,并将其传递给您的视图加载器。

class View_book_controller extends CI_Controller {
    function __construct() {
        parent::__construct();
        $this->load->helper('cookie');
        $this->load->helper('url');
        $this->load->library('session');
    }
    function loadView() {
        $this->load->model('view_book_model');
        $postlist['studentID'] = $this->input->get_post('studentID');
        $postlist['book_list'] = $this->view_book_model->getBookList();
        $this->load->view('viewbooks.php', $postlist);
     }
}

视图

在您的视图中,您可以使用 $postlist 键作为变量名称来检查行:

<? var_dump($book_list); ?>

您可以使用每次打印 HTML 或使用编码器的内置 HTML 表类手动生成表。