Codeigniter中的分页(无法显示每页的行数)

时间:2019-05-06 08:33:59

标签: php codeigniter

在Codeigniter中进行分页时遇到了一些问题。

它可以在表格下方显示分页链接

但是它不能在每页中每页显示5行,而是在每页中显示从数据库检索的总行。

例如,我想要的是我总共有15行数据,每页显示5行数据。

希望有人可以给我一些建议。谢谢。

型号

public function record_count() {
        return $this->db->count_all("order");
    }

    public function fetch_order($limit, $start) {
        $this->db->limit($limit, $start);
        $query = $this->db->get("order");

        if ($query->num_rows() > 0) {
            foreach ($query->result() as $row) {
                $data[] = $row;
            }
            return $data;
        }
        return false;
   }

控制器和视图

        $branchCode = "";
        if(!$this->session->userdata('branchcode')){ 
            $branchCode ="ABC";

            //if branchCode == ABC, show all orders from database
            $output = '';
            $pgcode = '';
            $this->load->model('order');
            if($this->input->post('code')){
                $code = $this->input->post('code');
            }

            $config = array();
            $config["base_url"] = base_url() . "index.php/Ordering/OrderListIndex/";
            $config["total_rows"] = $this->order->record_count();
            $config["per_page"] = 5;
            $config["num_links"] = 10;
            $config["uri_segment"] = 3;

            $this->pagination->initialize($config);

            $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
            $links["results"] = $this->order->fetch_order($config["per_page"], $page);
            $links["links"] = $this->pagination->create_links();

            $data = $this->order->SearchCusOrder($code);
            //var_dump($data);          
                    $output .= '
                            <table class="table table-bordered table-hover">
                                <thead>
                                    <tr>
                                        <th>Order ID</th>
                                        <th width="250px">Name</th>
                                        <th>Date</th>
                                        <th>Pay Option</th>
                                        <th>Status</th>
                                        <th>Action</th>
                                    </tr>
                                </thead>
                    ';
                    if($data->num_rows() > 0){
                        foreach($data->result() as $row){
                            if($row->status == 'Placed'){
                                $output.= '
                                        <tbody>
                                            <tr>
                                                <td>'.$row->id.'</td>
                                                <td>'.$row->cust_name.'</td>
                                                <td>'.$row->order_date.'</td>
                                                <td>'.$row->options.'</td>
                                                <td>'.$row->status.'</td>
                                                <td>
                                                    <a class="btn btn-warning" href="EditOrderPage/'.$row->id.'">Edit</a>
                                                    <a class="btn btn-success" href="GenerateInvoice/'.$row->id.'">Print Invoice</a>
                                                </td>
                                            </tr>
                                ';
                            }
                        }

                    }

            $output .= '
            </table>
            <ul class="pagination">
            <li class="page-item">'.$links["links"].'</li>
            </ul>
            ';
            echo $output;

        }

1 个答案:

答案 0 :(得分:0)

您必须将HTML添加到下面创建的输出代码中,并传递每页总计值。

默认情况下,Codeigniter不会显示每页上显示多少行(如数据表)。

您必须添加自定义HTML。

<span>Rows per pages 5 </span>