分页原理及简单分页类分享

更新时间:2024-04-23 00:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

分页原理及简单分页类分享

PHP初学者,对分页显示问题时常摸不着头绪,小编就讲解一下分页原理以及简单分页类分享。

分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。

分页原理:

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:

每页多少条记录($PageSize)? 当前是第几页($CurrentPageID)?

现在只要再给我一个结果集,我就可以显示某段特定的结果出来。 至于其他的参数,比如:上一页($PReviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。 以MySQL数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。 前10条记录:select * from table limit 0,10

第11至20条记录:select * from table limit 10,10 第21至30条记录:select * from table limit 20,10 ……

这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:

select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize

拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。搞定了最重要的如何获取数据的问题以后,剩下的就仅仅是传递参数,构造合适的sql语句然后使用php从数据库内获取数据并显示了。

简单分页类分享:

现在公布一个简单分类制作。只要理解了这个类的原理和步骤,其他复杂类也就能够触类旁通了。不废话,直接上源码,可以直接用在你的项目中。

数据库操作类代码:mysqli.func.php

// 数据库连接常量

define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PWD', '');

define('DB_NAME', 'guest');

// 连接数据库 function conn() {

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_NAME); mysqli_query($conn, \ return $conn; }

//获得结果集

function doresult($sql){

$result=mysqli_query(conn(), $sql); return $result; }

//结果集转为对象集合 function dolists($result){

return mysqli_fetch_array($result, MYSQL_ASSOC); }

function totalnums($sql) {

$result=mysqli_query(conn(), $sql); return $result->num_rows; }

// 关闭数据库 function closedb() {

if (! mysqli_close()) { exit('关闭异常'); } } ?>

分页实现代码:

include 'mysqli.func.php';

// 总记录数

$sql = \ FROM tb_user \ $totalnums = totalnums($sql);

// 每页显示条数 $fnum = 8;

// 翻页数

$pagenum = ceil($totalnums / $fnum);

// 页数常量

@$tmp = $_GET['page'];

//防止恶意翻页

if ($tmp > $pagenum)

echo \

//计算分页起始值 if ($tmp == \ $num = 0; } else {

$num = ($tmp - 1) * $fnum; }

// 查询语句

$sql = \ FROM tb_user ORDER BY dg_id DESC LIMIT \\

$result = doresult($sql);

// 遍历输出

while (! ! $rows = dolists($result)) {

echo $rows['dg_id'] . \ }

// 翻页链接

for ($i = 0; $i < $pagenum; $i ++) {

echo \ } ?>

本文来源:https://www.bwwdw.com/article/j6bp.html

Top