欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

PHP分页类代码应该如何设置

程序员文章站 2022-10-25 18:10:13
今天为大家献上一段代码,这是一段php分页代码:...

今天为大家献上一段代码,这是一段php分页代码:

<?php

//创建分页类

class page {

private $_all_num; //数据总个数

private $_page_size; //每页显示几条数据

private $_page; //当前页面

private $_all_page; //总页码

private $_url; //页面地址

private $_limit; //数据库查询语句

private $_sign; //地址符号

//拦截器

public function __get($_key) {

return $this->$_key;

}

public function __construct($_all_num,$_page_size) {

$this->_all_num = $_all_num;

$this->_page_size = $_page_size;

$this->_all_page = ceil($this->_all_num / $this->_page_size);

$this->_page = $this->setpage();

$this->_url = $this->seturl();

$this->_limit = 'limit '.($this->_page * $this->_page_size - $this->_page_size).','.$this->_page_size;

}

//获取当前页码

private function setpage() {

if (!empty($_get['page']) && $_get['page'] > 0) {

if ($_get['page'] <= $this->_all_page) {

return ceil($_get['page']);

} else {

return $this->_all_page;

}

} else {

return 1;

}

}

//获取地址

private function seturl() {

$_url = $_server['request_uri'];

if (!empty($_url)) {

$_par_url = parse_url($_url);

if (isset($_par_url['query'])) {

parse_str($_par_url['query'],$_arr);

if (isset($_arr['page'])) {

unset($_arr['page']);

}

if (!empty($_arr)) {

$_http = http_build_query($_arr);

$_end_url = $_par_url['path'] . '?' . $_http;

$this->_sign = '&';

} else {

$_end_url = $_par_url['path'];

$this->_sign = '?';

}

} else {

$_end_url = $_par_url['path'];

$this->_sign = '?';

}

}

return $_end_url;

}

//显示分页

public function numpage() {

$_num = '';

//前面

for ($i=1; $i<$this->_page; $i++) {

if ($i<1) continue;

$_num .= "<a href='".$this->_url. $this->_sign ."page=".$i."'>".$i."</a>";

}

//自己

$_num .= "<a class='me' href='".$this->_url. $this->_sign ."page=".$this->_page."'>".$this->_page."</a>";

//后面

for ($i=$this->_page+1; $i<=$this->_all_page; $i++) {

if ($i>$this->_all_page) continue;

$_num .= "<a href='".$this->_url. $this->_sign ."page=".$i."'>".$i."</a>";

}

return $_num;

}

}

?>

大家可以将上面一段代码复制到文本编辑器中这样看的会舒服一点!下面讲一下具体步骤:

1、创建一个分页类:class page {};

2、获取需要显示数据的个数,并且记录在page类中,这里数据的个数通过数据去获取就不详细说了!然后设置每页显示数据的条数!

3、获取当前页面地址!

这段代码大概意思就是当你的地址跟着?时,那么点击分页就用&page=;当你的地址后面没有后缀或者只有?page=,那么点击分页就用?page=

4、获取当前页码

这里的页码必须是整数,所以可以用ceil这个函数,还要注意用户的恶意修改地址!

4、做分页元素,这里只是做一个简单的数字分页,更复杂用户体验更好的,大家可以自行扩展!

5、设置数据库库的查询条数,也就是limit;举个例子:比如我现在有10条数据,设置每页显示5条数据,那么

当用户点击第一页时,limit 0,5

当用户点击第二页时,limit 5,5

6、这段代码的调用:

$_page = new page(10,5);

$_page->page();

上面的10是总的数据个数,5是你想要每页显示数据的个数,$_page->page()就是页面的分页,直接echo出来就行啦,注意你还得将page类中的$_limit调用出来放到数据库查询语句中,这样基本的php分页就出来啦!

此文章属于王业楼的个人博客原创,若要转载请注明出处:王业楼的个人博客 www.ly89.cn