如何为现有代码添加分页?

How to add pagination to existing code?

我通过列出数据库中的一些项目来完成我的代码,但现在我必须对它们进行分页,因为这会使页面过载。所以这是我的部分代码

 <!--elements to display-->
                                  <form method="get" action="?">
                            <div class="underlineInput">
                                <span>Display</span>

                                <select class="pageSelect" name="per_page" onchange="this.form.submit()">
                                    <option>25</option>
                                    <option>50</option>
                                    <option>100</option>
                                    <option>500</option>
                                    <option>all</option>
                                </select>

                                <span>  items per page</span>
                            </div>
         </form>
                        </div>
                    </div>
                    <!--table-->

                    <table class="table">
                        <thead>
                            <tr>
                                <th>
                                    <div class="handle" style="border-color:#0fb175;"></div>
                                    <div class="thContent"> <a href="" class="">ID</a></div>
                                </th>
                                <th>
                                    <div class="handle" style="border-color:#b10f46;"></div>
                                    <div class="thContent"> <a href="" class="">Username</a></div>
                                </th>
                                <th>
                                    <div class="handle" style="border-color:#0fb175;"></div>
                                    <div class="thContent"> <a href="" class="">Cod</a></div>
                                </th>
                                <th>
                                    <div class="handle" style="border-color:#0f53b1;"></div>
                                    <div class="thContent"> <a href="" class="">Email</a></div>

                                </th>
                                <th>
                                    <div class="handle" style="border-color:#0fb175;"></div>
                                    <div class="thContent"> <a href="" class="">Roles</a></div>
                                </th>
                                <th>
                                    <div class="handle" style="border-color:#0fb175;"></div>
                                    <div class="thContent"> <a href="" class="">Activated</a></div>
                                </th>
                                <th class="underlineInput">
                                    <div class="handle" style="border-color:#cfb01d;"></div>
                                    <div class="thContent">Actiuni</div>
                                </th>
                            </tr>
                        </thead>
                        <tbody>
                        <form id="delete_alll" method="post">
                        <?php 





                        $sql = "SELECT * FROM `admins` WHERE `username` = '".$_SESSION['logged_in']."'";
                        $adimin_logat = mysqli_query($db_connect, $sql);
                        $row = mysqli_fetch_assoc($adimin_logat);
                        //afisteaza rolurile mai mare decat admin care e 1 in functie de userul logat
                        $sql = "SELECT * FROM `admins` WHERE `roles` > ".$row['roles']." "; 

                        if(isset($_POST['search_user'])){
                            $sql="SELECT * FROM `admins` WHERE `roles` > ".$row['roles']." AND `username` = '".$_POST['srch_usr']."'";  
                        }


                        $connect = mysqli_query($db_connect, $sql);

            $counter = 0;



            if(isset($_GET['per_page'])){
                $resultPerPage = $_GET['per_page'];
            }
            else{
                $resultPerPage = 6;
            }
            $count = 0;

            while (($item = mysqli_fetch_array($connect)))  
        {
            if ($counter % 2) {
                $bgcolor = '#D3D3D3';
            } else {
                $bgcolor = '#A8A8A8';
            }

            $counter++;
            $count++;

                        ?>


                            <tr>

                                <td bgcolor="<?= $bgcolor ?>" ><input type="checkbox" name="check_dell_all[]" value="<?= $item['id'] ?>" /><?= $item['id'] ?></td>

                                <td bgcolor="<?= $bgcolor ?>" ><?= $item['username'] ?></td>
                                <td bgcolor="<?= $bgcolor ?>"><?= $item['code'] ?></td>
                                <td bgcolor="<?= $bgcolor ?>"><?= $item['email'] ?></td>
                                <td bgcolor="<?= $bgcolor ?>"><?php

if ($item['roles'] == 0)
{
    echo "Root";
}
if ($item['roles'] == 1)
{
    echo "Admin";
}
if ($item['roles'] == 2)
{
    echo "Editor";
}
if ($item['roles'] == 3)
{
    echo "Something_else";
}
                                ?></td>
                                <td bgcolor="<?= $bgcolor ?>">

                                <?php

if ($item['activated'] == '0')
{
    echo "No";
}
if ($item['activated'] == '1')
{
    echo "Yes";
}
                        ?>
</td>
                                <td bgcolor="<?= $bgcolor ?>" class="underlineInput">
                                    <select class="focusSelect" onChange="window.document.location.href=this.options[this.selectedIndex].value;" value="GO">

                                        <option selected="selected"></option>
                                        <option value="admin.php?action=edit&admin_id=<?= $item['id'] ?>">Edit</option>
                                        <option value="admin.php?action=delete&admin_id=<?= $item['id'] ?>">Sterge</option>
                                        <option value="admin.php?action=activate&admin_id=<?= $item['id'] ?>">Activare</option>   
                                    </select>
                                </td>
                            </tr>
                            <?php


    }
                            ?>
                        </tbody>
                        </form>

而且是这样显示的!

我的问题是如何通过简单的获取时间单击页面的编号(将由 row number 拆分为 how many to show 生成)来对其进行分页?page=2&items_toshow=25 并且必须显示第 25 到 50 项。你能帮助我吗 ?谢谢

对现有列表应用分页非常简单。

我可以给你解释一下伪逻辑:

1) 获取记录总数。您需要 2 个 sql,一个用于计数,一个用于最后几点中解释的实际记录。

2) 添加可变页数。 (例如20)

3) 将总记录数除以每页记录数。

为其添加 ceil() 函数。

从 1 开始循环到页数。

将锚 link 放入其中,将其指向带有编号的当前页面。

从 url 获取页码并通过应用限制过滤记录。