PHP使用Mysqli类库实现完美分页效果的方法

使用PHP的Mysqli类库实现完美分页效果,可以按以下步骤操作:

1. 连接数据库,获取总记录数:

$conn = new mysqli('host', 'user', 'password', 'database');
$result = $conn->query('SELECT COUNT(*) AS total FROM table');
$row = $result->fetch_assoc();
$total = $row['total'];  // 总记录数

2. 设置分页参数:每页显示记录数$pageSize和当前页码$page。如果$page为空,默认为1。

$pageSize = 10;      // 每页10条记录
$page = isset($_GET['page']) ? $_GET['page'] : 1;  

3. 计算分页信息:当前页首记录$offset和总页数$totalPage

$offset = ($page - 1) * $pageSize;  
$totalPage = ceil($total / $pageSize);  

4. 读取当前页记录:

$result = $conn->query("SELECT * FROM table LIMIT $offset, $pageSize");

5. 构造分页HTML:

<ul class="pagination">
    <li><a href="?page=1">首页</a></li>
    <li <?php if($page <= 1){echo 'class="disabled"';} ?>>
        <a <?php if($page > 1){echo "href=?page=".($page-1);} ?>>上一页</a>
    </li> 
 <?php for($i=1;$i<=$totalPage;$i++){ ?>
    <li <?php if($page == $i){echo 'class="active"';} ?>>
        <a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a>
    </li>
<?php } ?>
    <li <?php if($page >= $totalPage){echo 'class="disabled"';} ?>>
        <a <?php if($page < $totalPage){echo "href=?page=".($page+1);} ?>>下一页</a> 
    </li>
    <li><a href="?page=<?php echo $totalPage; ?>">尾页</a></li>
</ul>

6. 释放结果集和关闭数据库连接:

$result->free();  
$conn->close();

这样就实现了一个完美的PHP分页效果

用户可以通过页码链接访问任意页数据,并具有上一页、下一页、首页、尾页的链接,以及当前页高亮显示的样式。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论