【问题标题】:how to do pagination in this code? [closed]如何在这段代码中进行分页? [关闭]
【发布时间】:2017-02-06 06:32:35
【问题描述】:
<?php
        include("config/connection.php");
        $qry="SELECT * FROM `students_info`";
        $qry_sel=mysqli_query($con,$qry);
            echo "<table border='2'>";
            echo"<tr>";
            echo "<td>SL_NO</td>";
            echo "<td>NAME</td>";
            echo "<td>ROLL</td>";
            echo "<td>COLLEGE_ID</td>";
            echo "<td>CLASS</td>";
            echo "<td>STATUS</td>";

            echo "</tr>";
            while($row=mysqli_fetch_array($qry_sel))
            {
                echo "<tr>";
                $slno=$row['sl_no'];
                echo "<td>".$row['sl_no']."</td>";
                echo "<td>".$row['name']."</td>";
                echo "<td>".$row['roll']."</td>";
                echo "<td>".$row['clgid']."</td>";
                echo "<td>".$row['class']."</td>";
                echo "<td><a href='delete.php?id=$slno'>DELETE</a><a href='edit.php?id=$slno'>!!EDIT</a></td>";

                //echo"<td>"."<a href='delete.php?del=".$id."'>Delete</a>"."</td>";
                echo "</tr>";
            }
            echo"</table>";



?>

【问题讨论】:

  • 你搜索过php分页脚本吗?
  • 没关系,我已经在下面给出了答案,希望这能解决您的问题。
  • 我觉得这个问题可能比你告诉我们的要多。
  • 这里没有分页代码。你以为我们来这里只是为了给你写代码

标签: php mysql pagination


【解决方案1】:

以下步骤将指导您如何在现有代码中实现和合并分页。

  • 转到https://github.com/rajdeeppaul/Pagination,下载pagination.php 文件并将其包含到您的项目目录中,如下所示:

    require_once('pagination.php');
    
  • 使用适当的驱动程序创建Pagination 类的实例,如下所示:

    $pg = new Pagination('mysqli', 'HOSTNAME', 'USERNAME', 'PASSWORD', 'DATABASE_NAME');
    

    根据您的数据库凭据更改 HOSTNAMEUSERNAMEPASSWORDDATABASE_NAME

  • 使用setPaginationParameters()方法设置分页参数,像这样,

    $pg->setPaginationParameters(10, 5);
    
  • 调用Pagination类的getResult()方法,根据URL查询?page=X显示行,像这样,

    $resultSet = $pg->getResult('SELECT * FROM students_info', NULL, $_GET, 'page');
    
    foreach($resultSet as $row){
        echo "<tr>";
            $slno=$row['sl_no'];
            echo "<td>".$row['sl_no']."</td>";
            echo "<td>".$row['name']."</td>";
            echo "<td>".$row['roll']."</td>";
            echo "<td>".$row['clgid']."</td>";
            echo "<td>".$row['class']."</td>";
            echo "<td><a href='delete.php?id=" . $slno . "'>DELETE</a><a href='edit.php?id=" . $slno . "'>!!EDIT</a></td>";
        echo "</tr>";
    }
    
  • 最后用getPaginationLinks()方法显示分页链接,像这样,

    $pgLinks = $pg->getPaginationLinks();
    if(is_array($pgLinks) && count($pgLinks) && $pgLinks['prev']){
        /* previous pages are available */
        echo '&laquo; ';
    }
    if(is_array($pgLinks) && count($pgLinks) && count($pgLinks['links'])){
        /* show pagination links */
        foreach($pgLinks['links'] as $link){
            echo '<a href="yourPage.php?page='.$link.'">'.$link.'</a> ';
        }
    }
    if(is_array($pgLinks) && count($pgLinks) && $pgLinks['next']){
        /* next pages are available */
        echo '&raquo;';
    }
    

    注意:不要忘记用你的页面更改yourPage.php

这是完整的代码:

<?php
    require_once('pagination.php');

    $pg = new Pagination('mysqli', 'HOSTNAME', 'USERNAME', 'PASSWORD', 'DATABASE_NAME');
    $pg->setPaginationParameters(10, 5);

    $resultSet = $pg->getResult('SELECT * FROM students_info', NULL, $_GET, 'page');

    echo "<table border='2'>";
        echo"<tr>";
        echo "<td>SL_NO</td>";
        echo "<td>NAME</td>";
        echo "<td>ROLL</td>";
        echo "<td>COLLEGE_ID</td>";
        echo "<td>CLASS</td>";
        echo "<td>STATUS</td>";

        echo "</tr>";
        foreach($resultSet as $row){
            echo "<tr>";
                $slno=$row['sl_no'];
                echo "<td>".$row['sl_no']."</td>";
                echo "<td>".$row['name']."</td>";
                echo "<td>".$row['roll']."</td>";
                echo "<td>".$row['clgid']."</td>";
                echo "<td>".$row['class']."</td>";
                echo "<td><a href='delete.php?id=" . $slno . "'>DELETE</a><a href='edit.php?id=" . $slno . "'>!!EDIT</a></td>";
            echo "</tr>";
        }

        $pgLinks = $pg->getPaginationLinks();
        echo "<tr style='text-align:center;'><td colspan='6'>"; 
        if(is_array($pgLinks) && count($pgLinks) && $pgLinks['prev']){
            /* previous pages are available */
            echo '&laquo; ';
        }
        if(is_array($pgLinks) && count($pgLinks) && count($pgLinks['links'])){
            /* show pagination links */
            foreach($pgLinks['links'] as $link){
                echo '<a href="yourPage.php?page='.$link.'">'.$link.'</a> ';
            }
        }
        if(is_array($pgLinks) && count($pgLinks) && $pgLinks['next']){
            /* next pages are available */
            echo '&raquo;';
        }
        echo "</td></tr>";
    echo"</table>";
?>

脚注:如果您需要进一步说明此脚本的用法,请参阅用法文档。

【讨论】:

  • 他们还能要求什么 ;-)
  • @Fred-ii- 我相信答案不仅对 OP 有帮助,而且对未来的访问者也有帮助。 :-)
  • 确实是 Rajdeep。太糟糕了,这个问题得到了如此多的反对票。我很确定这是因为没有付出太多努力。
  • @Fred-ii- 非常正确,稍微研究一下就可以让 OP 取得良好的开端,但是 sigh
  • 然而,看到“删除”这个词,我的印象是情节可能比我们想象的要厚,而且他们可能希望能够删除记录。你可能被追到了兔子洞里。
猜你喜欢
  • 1970-01-01
  • 2013-06-11
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多