Codeigniter分页结果记录顺序

时间:2014-04-17 20:07:47

标签: php codeigniter pagination

我正在开发一个codeigniter项目。我正在显示从数据库到我已使用分页的用户的记录,我每页显示20条记录。在显示页面上,我设置了一个表格列,其中我编号记录第一页显示1-20条记录,第二页显示20-40条记录但数字列计数器再次从1-20开始而不是显示21-40 。

这是我的控制器记录:

$config = array();
        $config["base_url"] = 'http://localhost:81/ebook/' . "index.php/main/index";
        $config["total_rows"] = $this->book_data->record_count();
        $config["per_page"] = 20;
        $config["uri_segment"] = 3;

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

        $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;

        $data["result"] = $this->book_data->get_data($config["per_page"], $page);

        $data["links"] = $this->pagination->create_links();

        $this->load->view('home', $data);

这是我的观看代码:

<tbody>
                        <?php

                        $x=0;

                        foreach ($result as $row) {?>

                        <tr>
                            <td ><?php echo $x = $x+1; ?></td>
                            <td id="book" class="b"><?php echo $row->TITLE; ?></td>
                            <td id="book" class="b"><?php echo $row->AUTHOR; ?></td>
                            <td id="book" class="b"><?php echo $row->PUBLISHER; ?></td>
                            <td><?php echo $row->PAGES; ?></td>
                            <td><a href="<?php echo $row->PATH; ?>" style="text-decoration:none;" target="_blank"><input id="button" class="btn btn-success" type="submit" value="View" name="submit"></a></td>
                        </tr>

                        <?php } ?>

                    </tbody>

                </table>
                <hr>
            </div>
                <div id="page" style="float: left; width: 100%; text-align: center">
                    <p><?php echo $links; ?></p>
                </div>

3 个答案:

答案 0 :(得分:0)

当然它确实 - 你每次都以$ x = 0开始。

传递你的(每页值*(第num-1页))+ 1

你会得到它。

(你也可以用$ x ++递增;而不是$ x = $ x + 1.做同样的,看起来更有经验;-))

答案 1 :(得分:0)

当您启动计数器$x时,您需要考虑per_page值。 所以将$x = 0更改为:

$x =  isset($_GET["per_page"]) ? $_GET["per_page"] : 0;

同样如@jmadsen所述,使用$x++代替$x=$x+1;

答案 2 :(得分:0)

从控制器传递$ x一些值,例如传递1,默认为$ x = value_from_controller_data_array,当你在第1页时,当你下次点击第2页时,按钮只传递record_to_display_per_page *(page_number - 1))+ 1通过链接到您的控制器,以及下次加载所需结果的视图时