php如何实现数据分页 thinkphp分页

PHP如何实现分页显示?

【文件名】: c_mysql_page.inc // 【作 用】: MySQL分页函数类 // 【作 者】: 天灰 // // 【最后修改日期】: 2001/07/16[cxx] // 【变量定义规则】:‘C_’=字符型,‘I_’=整型,‘N_’=数字型,‘L_’=布尔型,‘A_’=数组型 //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // ※c_mysql_page() 构造函数,设置分页初始参数 // ※page_standard() 分页显示函数(标准型) // ※GetRecordStartEnd() 获得取记录的开始结束位置 // ※getmaxpage() 获得记录集的最大页数 // ※checkpage() 检查当前页数是否在0和最大页数之间 //------------------------------------------------------------------------------------------ class c_mysql_page { //------------------------------------------------------------------------------------------ // 变量定义 //------------------------------------------------------------------------------------------ var $I_pagesize = 10; //每页记录数 var $C_width = '80%'; //表格宽度 //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // 函数名:c_mysql_page ($I_pagesize, $c_width) // 作 用:构造函数,设置分页初始参数 // 参 数:$I_pagesize, $c_width // 返回值:变量 // 备 注:构造函数随着类的建立而自动执行 //------------------------------------------------------------------------------------------ function c_mysql_page ($I_pagesize=10, $C_width='80%') { if (isset($I_pagesize)){$this - I_pagesize = $I_pagesize;} if (isset($C_width)){$this - C_width = $C_width;} } //------------------------------------------------------------------------------------------ // 函数名:page_standard($I_sumrecord,$C_page,$C_url="self",$C_otherpara="") // 作 用:分页显示函数(标准型) // 参 数:$I_sumrecord 记录总数 // $C_url URL // $C_page URL后的参数 // $C_otherpara URL后的参数2 // $bgcolor 表格的背景颜色 // 返回值: // 备 注:无 //------------------------------------------------------------------------------------------ function page_standard($I_sumrecord,$C_page,$C_url="self",$C_otherpara="",$bgcolor="") { //检查参数 if ((!$I_sumrecord) || (!$C_page)){AlertExit("参数不全!");} global $PHP_SELF,$$C_page; //全局变量$C_page //检测$I_pagesize是否合法 if($this - I_pagesize 1){AlertExit("请设定每页的记录数!");} if($I_sumrecord 1){return false;} //检测总记录数 if($C_url == "self"){$C_url = $PHP_SELF;} //设置URL $I_page = $$C_page; //重新赋当前页值 $I_maxpage = $this - getmaxpage($I_sumrecord); //取出总页数 $I_page = $this - checkPage($I_maxpage,$I_page); //检查当前页号 //显示表 echo ""; echo ""; echo "共" . $I_sumrecord. "条主题nbsp当前第" . $I_page . "/". $I_maxpage. "页"; if ($I_maxpage 1) { echo ""; if($I_page 1 $I_page $I_maxpage) { echo "首页"; $pre=$I_page-1; echo "上页"; $next=$I_page+1; echo "下页"; echo "末页"; } elseif($I_page == 1) { $next = $I_page+1; echo "下页"; echo "末页"; } elseif($I_page == $I_maxpage) { echo "首页"; $pre=$I_page-1; echo "上页"; } //显示select echo "转到"; echo "";//OnChange=".WindowLocation($C_url,$C_otherpara,$C_page)." for($i=1;$i I_pagesize; $I_pagesize = $this - I_pagesize; } //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // 函数名:getmaxpage($intRecordNum) // 作 用:获得记录集的最大页数 // 参 数:$I_sumrecord 记录总数 // 返回值:最大页数$I_maxpage(整型) // 备 注:无 //------------------------------------------------------------------------------------------ function getmaxpage($I_sumrecord) { if (!$I_sumrecord){AlertExit("参数不全!

成都创新互联公司于2013年成立,先为双塔等服务建站,双塔等地企业,进行企业商务咨询服务。为双塔企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

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();// 分页显示输出

我想问问php分页怎么弄?

?php

header('Content-type:text/html;charset=utf-8');

$r = mysql_connect("localhost","root","");

mysql_select_db("1104java",$r);

mysql_query("set names utf8");

$sql = "select count(*) as total from s_goods";

$result = mysql_query($sql);

$arr = mysql_fetch_assoc($result);

//var_dump($arr);

$total = $arr['total'];//总的记录数

$page_size = 3; //每页显示的记录数

$current_page = !empty($_GET['p']) ? intval($_GET['p']) : 1;//当前页码

$pages = ceil($total/$page_size);//总页码=总的记录数/每页显示的记录数

$last_page = ($current_page-1) 0 ? $current_page-1 : 1;

$next_page = ($current_page+1) $pages ? $pages : $current_page+1;

$start = ($current_page-1) * $page_size;

$sql= "select goods_id, goods_name, goods_price from s_goods limit $start,$page_size";

//echo $sql; exit;

$result = mysql_query($sql);

$arr = array();

while($row = mysql_fetch_assoc($result)){

$arr[] = $row;

}

//var_dump($arr); exit;

echo "table width='80%' border=1trth商品id/thth商品名称/thth商品单价/th/tr";

foreach($arr as $goods){

echo "trtd{$goods['goods_id']}/tdtd{$goods['goods_name']}/tdtd{$goods['goods_price']}/td/tr";

}

echo '/table';

echo "总计:{$total}条 当前{$current_page}页/总计{$pages}页 a href='./index.php?p=1'第一页/a a href='./index.php?p={$last_page}'上一页/a a href='./index.php?p={$next_page}'下一页/a a href='./index.php?p={$pages}'尾页/a";

?

PHP网页中内容太多如何让他自动分页

?php /* PHP动态分页测试代码 */ //代码开始↓ if(empty($page)) $page=0; //默认页码值为0(即第一页) $total=152; //整体要显示的条目总数 $pagenum=10; //每页显示条目数 //写各页的内容(可以处理其他事件) for($i=$page*$pagenum;$i$page*$pagenum+$pagenum;$i++){ $tmpstr="第 ". ($i+1) ." 条记录"; if($i$total) print "$tmpstrbr"; } //end of for //得到总页数 $tpage 的值 if($total%$pagenum==0) { //若被整除 $tpage=$total/$pagenum; } else { //否则用floor函数取得最大整数然后+1 $tpage=floor($total/$pagenum)+1; } //智能化的前进后退+段页码方式实现超链 $id_pd=floor($page/5)*5; //当前页页码数段初始id值 $startpagepre=$id_pd-5; $startpagenext=$id_pd+5; $lastpage=$tpage-1; print "p"; //处理首页()和前五页() if($page==0){ print "span style=\"color:red\"/span "; }else{ print "a title=\"首页\" href=\"$php_self?page=0\"/a "; } if($page5){ print "span style=\"color:red\"/span "; }else{ print "a title=\"前五页\" href=\"$php_self?page=$startpagepre\"/a "; } //写页段中的页码超链 for($i=$id_pd;$i$id_pd+5;$i++){ $pg=$i+1; //页码数 if($i==$page){ if($i$tpage) print "span style=\"color:red\"$pg/span/a "; }else{ if($i$tpage) print "a href=\"$php_self?page=$i\"$pg/a "; } } //处理后五页()和尾页() if($page$tpage-5){ print "span style=\"color:red\"/span "; }else{ print "a title=\"后五页\" href=\"$php_self?page=$startpagenext\"/a "; } if($page==$lastpage){ print "span style=\"color:red\"/span "; }else{ print "a title=\"尾页\" href=\"$php_self?page=$lastpage\"/a "; } print "总页数 span style=\"color:red\"$tpage/span/p"; ?

用php怎样完成数字分页

你首先你要查询你总条数 total

你要设定一个变量 num 作为每页的数量

用total除以num 如果整除则为这个数组 如果有余则为这个数+1

然后确定当前第几页 limit  页数*num , num

将页数总数返回到前端

前端接接受到这个页数后 for一个a标签

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如何实现数据分页 thinkphp分页
文章源于:http://hbruida.cn/article/doceige.html