PHP实现的分页类是一种常用的技术,可以用于解决大量数据分页显示的需求。下面是一份详细的“PHP实现的分页类定义与用法示例”的攻略。
分页类的定义
首先,我们需要定义一个名为 Pager
的分页类。该类主要具备以下特点:
- 可以接收数据库查询的统计总数、当前页、每页显示条数等参数。
- 可以根据总数、当前页和每页显示条数计算出总页数。
- 可以生成分页导航条。
以下是 Pager
类的定义,包含必要的属性和方法:
class Pager {
public $totalNum; // 总数
public $curPage; // 当前页
public $pageNum; // 每页显示条数
public $totalPage; // 总页数
/**
* 构造方法
* @param $totalNum int 总数
* @param $curPage int 当前页
* @param $pageNum int 每页显示条数
**/
function __construct($totalNum, $curPage, $pageNum) {
$this->totalNum = $totalNum;
$this->curPage = $curPage;
$this->pageNum = $pageNum;
$this->totalPage = ceil($totalNum / $pageNum); // 计算总页数
}
/**
* 生成分页导航条
* @param $urlPrefix string 分页链接地址前缀
* @return string
**/
function PageList($urlPrefix) {
// 省略生成分页导航条的具体操作
}
}
分页类的用法示例1:根据mysql查询结果生成分页导航条
现在,我们来看一个具体的用法示例。假设你已经用 mysql 查询到了相关数据,并且已经获取到了数据总数、当前页和每页显示条数等信息。接下来,通过实例化 Pager
类并调用其中的 PageList()
方法,可以在页面上生成对应的分页导航条。下面是详细的代码示例:
// 连接数据库并查询数据总数
$con = mysqli_connect("localhost","my_user","my_password","my_db");
$result = mysqli_query($con,"SELECT COUNT(*) FROM my_table");
$row = mysqli_fetch_array($result);
$totalNum = $row[0];
// 设置每页显示条数和当前页
$pageNum = 10;
$curPage = isset($_GET['page']) ? intval($_GET['page']) : 1;
// 实例化Pager类
$page = new Pager($totalNum, $curPage, $pageNum);
// 查询当前页数据
$start = ($curPage - 1) * $pageNum;
$sql = "SELECT * FROM my_table LIMIT ".$start.",".$pageNum;
$query = mysqli_query($con,$sql);
// 输出数据
while($row = mysqli_fetch_array($query)) {
echo $row['id']." ".$row['name']."<br/>";
}
// 生成分页导航条
$pageList = $page->PageList("http://www.example.com/index.php?page=");
echo $pageList;
上述示例中,我们定义了一个新的 $page
实例,并传入了数据总数、当前页和每页显示条数等参数。然后,我们计算出了当前页对应的数据项在数据库中的起始位置,并根据起始位置和每页显示条数执行 mysql 查询操作。最后,我们在页面中输出查询结果,并调用 $page->PageList()
方法生成分页导航条。
分页类的用法示例2:自定义分页导航条的样式和链接地址
除了简单地生成分页导航条外,我们还可以进行一些自定义操作,来实现更好的用户体验。比如,我们可以修改分页导航条的样式,并添加额外的链接参数等。下面是一个具体的代码示例:
// 连接数据库并查询数据总数
$con = mysqli_connect("localhost","my_user","my_password","my_db");
$result = mysqli_query($con,"SELECT COUNT(*) FROM my_table");
$row = mysqli_fetch_array($result);
$totalNum = $row[0];
// 设置每页显示条数和当前页
$pageNum = 10;
$curPage = isset($_GET['page']) ? intval($_GET['page']) : 1;
// 实例化Pager类
$page = new Pager($totalNum, $curPage, $pageNum);
// 生成分页导航条
$pageList = $page->PageList("http://www.example.com/index.php?page=", array(
'prevText' => '<上一页',
'nextText' => '下一页>',
'curCssClass' => 'current',
'prevCssClass' => '',
'nextCssClass' => '',
'isShowPrevNext' => true,
'isShowPrevText' => true,
'isShowFirstLastText' => false
));
echo $pageList;
上述示例中,我们在调用 $page->PageList()
方法时,传入了一个额外的选项参数,包含了如下信息:
prevText
:上一页文本的显示内容。nextText
:下一页文本的显示内容。curCssClass
:当前页链接的 CSS 类名称。prevCssClass
:上一页链接的 CSS 类名称。nextCssClass
:下一页链接的 CSS 类名称。isShowPrevNext
:是否显示上一页和下一页链接。isShowPrevText
:是否显示上一页文本。isShowFirstLastText
:是否显示首页和尾页文本。
通过传入这些选项参数,我们可以对分页导航条的样式和链接地址进行更细致的控制。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP实现的分页类定义与用法示例 - Python技术站