资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php漂亮的数据分页类 php分页函数

thinkphp数据分页怎么使用

第一种:利用Page类和limit方法

成都创新互联公司专注于桓仁企业网站建设,响应式网站,成都做商城网站。桓仁网站建设公司,为桓仁等地区提供建站服务。全流程定制设计,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

$User = M('User'); // 实例化User对象

import('ORG.Util.Page');// 导入分页类

$count = $User-where('status=1')-count();// 查询满足要求的总记录数

$Page = new Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数

$show = $Page-show();// 分页显示输出

// 进行分页数据查询 注意limit方法的参数要使用Page类的属性

$list = $User-where('status=1')-order('create_time')-limit($Page-firstRow.','.$Page-listRows)-select();

$this-assign('list',$list);// 赋值数据集

$this-assign('page',$show);// 赋值分页输出

$this-display(); // 输出模板

第二种:分页类和page方法的实现

$User = M('User'); // 实例化User对象

// 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取

$list = $User-where('status=1')-order('create_time')-page($_GET['p'].',25')-select();

$this-assign('list',$list);// 赋值数据集

import(“ORG.Util.Page”);// 导入分页类

$count = $User-where('status=1')-count();// 查询满足要求的总记录数

$Page = new Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数

$show = $Page-show();// 分页显示输出

$this-assign('page',$show);// 赋值分页输出

$this-display(); // 输出模板

带入查询条件

如果是POST方式查询,如何确保分页之后能够保持原先的查询条件呢,我们可以给分页类传入参数,方法是给分页类的parameter属性赋值:

import('ORG.Util.Page');// 导入分页类

$mapcount = $User-where($map)-count();// 查询满足要求的总记录数

$Page = new Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数

//分页跳转的时候保证查询条件

foreach($map as $key=$val) {

$Page-parameter .= "$key=".urlencode($val).'';

}

$show = $Page-show();// 分页显示输出

ThinkPHP使用心得分享-分页类Page的用法

ThinkPHP中的Page类在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page类:

复制代码

代码如下:

import('ORG.Util.Page');

//Page类的引入

$db

=

M('abc');//实例化数据表abc

$where

=

array(

'id'='2';

);//条件语句$where,例表中字段id的值为2

$count

=

$db-where($where)-count();//获取符合条件的数据总数count

$page

=

new

Page($count,

10);//实例化page类,传入数据总数和每页显示10条内容

$limit

=

$page-firstRow

.

','

.

$page-listRows;//每页的数据数和内容$limit

$result

=$db-where($where))-limit($limit)-select();//分页查询结果

$this-result

=

$result;//赋值

$this-show

=

$page-show();//获取分页的底部信息

以上代码是分页类实现的基本语句,当然喜欢使用原生sql语句的朋友也可以配合原生sql语句实现查询分页:

复制代码

代码如下:

import('ORG.Util.Page');

//Page类的引入

$db

=

M('abc');//实例化数据表abc

$where

=

array(

'id'='2';

);//条件语句$where,例表中字段id的值为2

$count

=

$db-where($where)-count();//获取符合条件的数据总数count

$page

=

new

Page($count,

10);//实例化page类,传入数据总数和每页显示10条内容

$Modle

=

new

Model();//实例化新数据模型

$sql

=

'select

id,name

from

abc

where

'.$where.'

limit

'.$page-firstRow.','.$page-listRows;//sql语句

$result

=

$Modle-query($sql);//执行sql语句

$this-result

=

$result

$this-show=$page-show();

当然,分布查询获取的内容也可以先对查询完的数据进行处理再赋值,比如

复制代码

代码如下:

...

$result

=$db-where($where))-limit($limit)-select();//分页查询结果

$res

=

abc($result);//abc方法(自定义方法或php函数)对结果$result进行数据排序或重组处理等

$this-result

=

$res;//赋值

thinkphp怎么让实现数据分页

你的原本代码:

function accomplish_indent(){

$User = M('order'); // 实例化User对象

$count = $User-where('status=0')-count();// 查询满足要求的总记录数

$Page = new \Think\Page($count5);// 实例化分页类 传入总记录数和每页显示的记录数(5)

$show = $Page-show();// 分页显示输出

// 进行分页数据查询 注意limit方法的参数要使用Page类的属性

$list = $User-where('status=0')-order('add_time')-limit($Page-firstRow.''.$Page-listRows)-select();

PHP显示很多数据库信息,如何自动分页呢?代码

这是我以前学php写的 哈哈 你可以看看

?php

/**

* 分页类

* 1.实例化分页类,例:mypage new page("SQL语句","每页显示记录条数");

* 2.调用类中的 genpage() 方法,返回分页生成的SQL语句;

* 3.执行新生成的SQL语句;

* 4.调用 showpage_1() 或 showpage_2() 方法显示分页的翻页(可也以自定义返回显示的方式)

* 实例:

* $page = new page("select * from ly",2);

* $sql=$page-genpage();

* $ar=mysql_query($sql);

* while($nu=mysql_fetch_array($ar)){

* echo $nu[0].'br';

* }

* $page-showpage_2();

*/

class page{

private $totalnum; //总记录数

private $pagecount; //总页数

private $f_pagenum; //当前页的第一条记录

private $sql;

private $page; //当前页

private $page_size; //每页显示数量

private $pagesql;

private $total;

private $url; //当前页url

private $beforepage; //上一页

private $nextpage; //下一页

function __construct($sql,$page_size){ //传入sql语句和每页显示条数

$this-sql=$sql;

$this-page_size=$page_size;

$this-page=is_numeric($_GET[page]);

$this-page=substr($this-page,0,10);

$this-page=mysql_real_escape_string($this-page);

if(ereg("^[0-9]*[1-9][0-9]*$",$this-page)!=1){

$this-page=1;

}

if($this-page99999999){

$this-page=1;

}

}

function genpage(){

//

// if(!$this-page){

// $this-page=1;

// }

$this-pagesql = strstr($this-sqlcz," from ");

$this-pagesql = "select count(*) as ids ".$this-pagesql;

$this-total=mysql_query($this-sql);

$this-totalnum=mysql_num_rows($this-total); //总记录数

$this-pagecount=ceil($this-totalnum/$this-page_size); //总页数

$this-f_pagenum=$this-page_size*($this-page-1); //当前页的第一条记录

$this-sql .=" limit $this-f_pagenum,$this-page_size ";

return $this-sql;

}

//替换url中的page的页数

function replace_page($npage){

$this-url=$_SERVER["REQUEST_URI"]; //获取当前url

$check = strpos($this-url, 'page='); //判断url中是否有page分页参数

if($check==false){ //如果没有page分页参数

if(strpos($this-url, '?')==false){ //判断是否url是否有“ ?”号,

$this-url=$this-url."?page=1"; //如果没有“ ?”号,说明之前url没有参数

}else{

$this-url=$this-url."page=1"; //如果有“ ?”号,说明有参数,追加参数要改用符号

}

}

$npage="page=".$npage; //跳转到的页

$zz='[page=\d*]';

return preg_replace($zz,$npage,$this-url); //正则替换掉url中的page参数,实现分页

}

//显示总页数

function show_all_page(){

return $this-pagecount;

}

//显示当前页

function show_current_page(){

return $this-page;

}

//显示首页和上一页

function show_firstAndup_page(){

if($this-page==1){

return "首页|上一页";

}else{

$this-beforepage=$this-page-1;

return "a href=".$this-replace_page(1)."首页/a|a href=".$this-replace_page($this-beforepage)."上一页/a";

}

}

//显示下一页和最后页

function show_lastAnddown_page(){

if(($this-page==$this-pagecount)||($this-pagecount==0)){

return "下一页|尾页";

}else{

$this-nextpage=$this-page+1;

return "a href=".$this-replace_page($this-nextpage)."下一页/a|a href=".$this-replace_page($this-pagecount)."尾页/a";

}

}

//循环显示页数

function show_loop_page(){

$shownum =10/2;

$startpage = ($this-page$shownum)?$this-page-$shownum:1;

$endpage = ($this-page+$shownum=$this-pagecount)?$this-page+$shownum:$this-pagecount;

for($i=$startpage;$i=$endpage;$i++)

{

if($i==$this-page) {

$a= " b[".($i)."]/b ";

}else{

$a= " a href=".$this-replace_page($i)."".($i)."/a ";

}

$b=$b.$a;

}

return $b;

}

//整体显示第一种方案

function showpage_1(){

return "共".$this-show_all_page()."页nbsp"."当前第".$this-show_current_page()."页nbsp".$this-show_firstAndup_page()."nbsp"

.$this-show_loop_page()."nbsp".$this-show_lastAnddown_page();

}

//整体显示第二种方案

function showpage_2(){

return $this-show_firstAndup_page()."nbsp".$this-show_loop_page()."nbsp".$this-show_lastAnddown_page();

}

}

?


网站栏目:php漂亮的数据分页类 php分页函数
地址分享:http://www.cdkjz.cn/article/dodpjgc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220