您的位置:

php实用分页函数方法,php分割函数

本文目录一览:

PHP怎么制作分页

方法/步骤

首先要了解下分页的原理即

SELECT * FROM table …… limit 开始位置 , 操作条数

开始位置从0开始

SELECT * FROM table …… limit 0 , 20

取最前面20条

SELECT * FROM table …… limit 10 , 20

11条到20条

其次分页要用的公式

得到公式

(当前页数 - 1 )X 每页条数 , 每页条数

Select * from table limit ($Page- 1) * $PageSize, $PageSize

还要了解parse_url()解析URL函数

parse_url() 是讲URL解析成有固定键值的数组的函数

$ua=parse_url("");

print_r($ua);

结果:

Array

(

[scheme] = http

[host] = hostname

[user] = username

[pass] = password

[path] = /path

[query] = arg=value

[fragment] = anchor

)

创建数据库bbs和表test有

CREATE TABLE `test` (

`id` int(11) NOT NULL auto_increment,

`name` varchar(50) character set gb2312 NOT NULL,

`sex` varchar(2) character set gb2312 NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

然后插入十几条测试数据即可

写mysql数据库连接代码保存conn.php文件里

代码如下

?php

$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误");

mysql_select_db("bbs", $conn);

mysql_query("set names 'GBK'"); //使用GBK中文编码;

function htmtocode($content) {

$content = str_replace("\n", "br", str_replace(" ", " ", $content));

return $content;

}

//$content=str_replace("'","'",$content);

//htmlspecialchars();

?

写分页函数page.php

代码如下

?php

function _PAGEFT($totle, $displaypg = 20, $url = '') {

global $page, $firstcount, $pagenav, $_SERVER;

$GLOBALS["displaypg"] = $displaypg;

if (!$page)

$page = 1;

if (!$url) {

$url = $_SERVER["REQUEST_URI"];

}

//URL分析:

$parse_url = parse_url($url);

$url_query = $parse_url["query"]; //单独取出URL的查询字串

if ($url_query) {

$url_query = ereg_replace("(^|)page=$page", "", $url_query);

$url = str_replace($parse_url["query"], $url_query, $url);

if ($url_query)

$url .= "page";

else

$url .= "page";

} else {

$url .= "?page";

}

$lastpg = ceil($totle / $displaypg); //最后页,也是总页数

$page = min($lastpg, $page);

$prepg = $page -1; //上一页

$nextpg = ($page == $lastpg ? 0 : $page +1); //下一页

$firstcount = ($page -1) * $displaypg;

//开始分页导航条代码:

$pagenav = "显示第 B" . ($totle ? ($firstcount +1) : 0) . "/B-B" . min($firstcount + $displaypg, $totle) . "/B 条记录,共 $totle 条记录";

//如果只有一页则跳出函数:

if ($lastpg = 1)

return false;

$pagenav .= " a href='$url=1'首页/a ";

if ($prepg)

$pagenav .= " a href='$url=$prepg'前页/a ";

else

$pagenav .= " 前页 ";

if ($nextpg)

$pagenav .= " a href='$url=$nextpg'后页/a ";

else

$pagenav .= " 后页 ";

$pagenav .= " a href='$url=$lastpg'尾页/a ";

//下拉跳转列表,循环列出所有页码:

$pagenav .= " 到第 select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'\n";

for ($i = 1; $i = $lastpg; $i++) {

if ($i == $page)

$pagenav .= "option value='$i' selected$i/option\n";

else

$pagenav .= "option value='$i'$i/option\n";

}

$pagenav .= "/select 页,共 $lastpg 页";

}

include("conn.php");

$result=mysql_query("SELECT * FROM `test`");

$total=mysql_num_rows($result);

//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉).

_PAGEFT($total,5);

echo $pagenav;

$result=mysql_query("SELECT * FROM `test` limit $firstcount,$displaypg ");

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

echo "hrb".$row[name]." | ".$row[sex];

}

?

调用数据和分页list.php

?php

/**

* 爱微网

*/

include("conn.php");

$pagesize=5;

$url=$_SERVER["REQUEST_URI"];

$url=parse_url($url);

$url=$url[path];

$numq=mysql_query("SELECT * FROM `test`");

$num = mysql_num_rows($numq);

if($_GET[page]){

$pageval=$_GET[page];

$page=($pageval-1)*$pagesize;

$page.=',';

}

if($num $pagesize){

if($pageval=1)$pageval=1;

echo "共 $num 条".

" a href=$url?page=".($pageval-1)."上一页/a a href=$url?page=".($pageval+1)."下一页/a";

}

echo $SQL="SELECT * FROM `test` limit $page $pagesize ";

$query=mysql_query($SQL);

while($row=mysql_fetch_array($query)){

echo "hrb".$row[name]." | ".$row[sex];

}

?

注意事项

注意分页公式写法你只要记住即可;

(当前页数 - 1 )X 每页条数 , 每页条数;

Select * from table limit ($Page- 1) * $PageSize, $PageSize;

注意三个代码文件在同一个目录下;

主要是最后的list.php调用代码要细看很有用。

php分页使用方法

class Page

{

// 起始行数

public $firstRow ;

// 列表每页显示行数

public $listRows ;

// 页数跳转时要带的参数

public $parameter ;

// 分页总页面数

protected $totalPages ;

// 总行数

protected $totalRows ;

// 当前页数

protected $nowPage ;

// 分页的栏的总页数

protected $coolPages ;

// 分页栏每页显示的页数

protected $rollPage ;

// 分页参数

public $p;

// 分页显示定制

protected $config = array(

'header'='条记录',

'prev'='上一页',

'next'='下一页',

'first'='第一页',

'last'='最后一页',

'theme'=' %totalRow% %header% %nowPage%/%totalPage% 页 %upPage% %downPage% %first% %prePage% %linkPage% %nextPage% %end%'

);

/**

+----------------------------------------------------------

* 架构函数

+----------------------------------------------------------

* @access public

+----------------------------------------------------------

* @param array $totalRows 总的记录数

* @param array $listRows 每页显示记录数

* @param array $parameter 分页跳转的参数

+----------------------------------------------------------

*/

public function __construct($totalRows,$listRows,$p='p',$rollPage=5,$parameter='') {

$this-p=$p;

$this-totalRows = $totalRows;

$this-parameter = $parameter;

$this-rollPage = $rollPage;

$this-listRows = !empty($listRows)?$listRows:15;

$this-totalPages = ceil($this-totalRows/$this-listRows); //总页数

$this-coolPages = ceil($this-totalPages/$this-rollPage);

$this-nowPage = !empty($_GET[$this-p])?$_GET[$this-p]:1;

if(!empty($this-totalPages) $this-nowPage$this-totalPages) {

$this-nowPage = $this-totalPages;

}

$this-firstRow = $this-listRows*($this-nowPage-1);

}

public function setConfig($name,$value) {

if(isset($this-config[$name])) {

$this-config[$name] = $value;

}

}

/**

+----------------------------------------------------------

* 分页显示输出

+----------------------------------------------------------

* @access public

+----------------------------------------------------------

*/

public function show() {

if(0 == $this-totalRows) return '';

$nowCoolPage = ceil($this-nowPage/$this-rollPage);

$url = $_SERVER['REQUEST_URI'].(strpos($_SERVER['REQUEST_URI'],'?')?'':"?").$this-parameter;

$parse = parse_url($url);

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

parse_str($parse['query'],$params);

unset($params[$this-p]);

$url = $parse['path'].'?'.http_build_query($params);

}

//上下翻页字符串

$upRow = $this-nowPage-1;

$downRow = $this-nowPage+1;

if ($upRow0){

$upPage="a href='".$url."".$this-p."=$upRow'".$this-config['prev']."/a";

}else{

$upPage="";

}

if ($downRow = $this-totalPages){

$downPage="a href='".$url."".$this-p."=$downRow'".$this-config['next']."/a";

}else{

$downPage="";

}

//

if($nowCoolPage == 1){

$theFirst = "";

$prePage = "";

}else{

$preRow = $this-nowPage-$this-rollPage;

$prePage = "a href='".$url."".$this-p."=$preRow' 上".$this-rollPage."页/a";

$theFirst = "a href='".$url."".$this-p."=1' ".$this-config['first']."/a";

}

if($nowCoolPage == $this-coolPages){

$nextPage = "";

$theEnd="";

}else{

$nextRow = $this-nowPage+$this-rollPage;

$theEndRow = $this-totalPages;

$nextPage = "a href='".$url."".$this-p."=$nextRow' 下".$this-rollPage."页/a";

$theEnd = "a href='".$url."".$this-p."=$theEndRow' ".$this-config['last']."/a";

}

// 1 2 3 4 5

$linkPage = "";

for($i=1;$i=$this-rollPage;$i++){

$page=($nowCoolPage-1)*$this-rollPage+$i;

if($page!=$this-nowPage){

if($page=$this-totalPages){

$linkPage .= " a href='".$url."".$this-p."=$page' ".$page." /a";

}else{

break;

}

}else{

if($this-totalPages != 1){

$linkPage .= " span class='current'".$page."/span";

}

}

}

$pageStr = str_replace(

array('%header%','%nowPage%','%totalRow%','%totalPage%','%upPage%','%downPage%','%first%','%prePage%','%linkPage%','%nextPage%','%end%'),

array($this-config['header'],$this-nowPage,$this-totalRows,$this-totalPages,$upPage,$downPage,$theFirst,$prePage,$linkPage,$nextPage,$theEnd),$this-config['theme']);

return $pageStr;

}

}

具体调用方法

$count是总记录数

15是当前显示数

$p=new Page($count,15);

$p-setConfig('header', '个项目'); //可以设置变量名称,即输出的名称

$page=$p-show(); //生成html page分页html

总的流程是

先读取出总的记录数

,然后调用上面的分页类

在分页类里面输出2个变量一个是当前分页读取数据的开始,和偏移量

limit($p-listRows,$p-firstRow)

然后执行分页sql语句

$page=$p-show();

page就是标准分页html

自定义PHP分页函数

以下为引用的内容:

?

//为了避免重复包含文件而造成错误,加了判断函数是否存在的条件:

if(!function_exists(pageft)){

//定义函数pageft(),三个参数的含义为:

//$totle:信息总数;

//$displaypg:每页显示信息数,这里设置为默认是20;

//$url:分页导航中的链接,除了加入不同的查询信息“page”外的部分都与这个URL相同。

// 默认值本该设为本页URL(即$_SERVER["REQUEST_URI"]),但设置默认值的右边只能为常量,所以该默认值设为空字符串,在函数内部再设置为本页URL。

function pageft($totle,$displaypg=20,$url=''){

//定义几个全局变量:

//$page:当前页码;

//$firstcount:(数据库)查询的起始项;

//$pagenav:页面导航条代码,函数内部并没有将它输出;

//$_SERVER:读取本页URL“$_SERVER["REQUEST_URI"]”所必须。

global $page,$firstcount,$pagenav,$_SERVER;

//为使函数外部可以访问这里的“$displaypg”,将它也设为全局变量。注意一个变量重新定义为全局变量后,原值被覆盖,所以这里给它重新赋值。

$GLOBALS["displaypg"]=$displaypg;

$page=$_GET['page'];

if(!$page) $page=1;

//如果$url使用默认,即空值,则赋值为本页URL:

if(!$url){ $url=$_SERVER["REQUEST_URI"];}

//URL分析:

$parse_url=parse_url($url);

$url_query=$parse_url["query"]; //单独取出URL的查询字串

if($url_query){

//因为URL中可能包含了页码信息,我们要把它去掉,以便加入新的页码信息。

//这里用到了正则表达式,请参考“PHP中的正规表达式”()

$url_query=ereg_replace("(^|)page=$page","",$url_query);

//将处理后的URL的查询字串替换原来的URL的查询字串:

$url=str_replace($parse_url["query"],$url_query,$url);

//在URL后加page查询信息,但待赋值:

if($url_query) $url.="page"; else $url.="page";

}else {

$url.="?page";

}

//页码计算:

$lastpg=ceil($totle/$displaypg); //最后页,也是总页数

$page=min($lastpg,$page);

$prepg=$page-1; //上一页

$nextpg=($page==$lastpg ? 0 : $page+1); //下一页

$firstcount=($page-1)*$displaypg;

//开始分页导航条代码:

$pagenav="显示第 B".($totle?($firstcount+1):0)."/B-B".min($firstcount+$displaypg,$totle)."/B 条记录,共 $totle 条记录";

//如果只有一页则跳出函数:

if($lastpg=1) return false;

$pagenav.=" a href='$url=1'首页/a ";

if($prepg) $pagenav.=" a href='$url=$prepg'前页/a "; else $pagenav.=" 前页 ";

if($nextpg) $pagenav.=" a href='$url=$nextpg'后页/a "; else $pagenav.=" 后页 ";

$pagenav.=" a href='$url=$lastpg'尾页/a ";

//下拉跳转列表,循环列出所有页码:

$pagenav.=" 到第 select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'\n";

for($i=1;$i=$lastpg;$i++){

if($i==$page) $pagenav.="option value='$i' selected$i/option\n";

else $pagenav.="option value='$i'$i/option\n";

}

$pagenav.="/select 页,共 $lastpg 页";

}

}

?

php=mysql调用方法:

?

//(前面程序略)

include("pageft.php"); //包含“pageft.php”文件

//取得总信息数

$result=mysql_query("select * from mytable");

$total=mysql_num_rows($result);

//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。

pageft($total,10);

//现在产生的全局变量就派上用场了:

$result=mysql_query("select * from mytable limit $firstcount,$displaypg ");

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

//(列表内容略)

}

?

//-----------用法

连接sqlserver

?php

$query="select * from zhufu";

$result=mssqlresult($query);

$numrows = mssql_num_rows($result);

$pagesize=20;

$Url="index.php";

pageft($numrows,$pagesize,$Url);

$sql = "select top $pagesize * from zhufu where (id not in (select top $firstcount id from zhufu order by id desc)) order by id desc";

//echo $sql;

$result1= mssqlresult($sql);

while( $row=mssql_fetch_assoc($result1))

{

$row1=trim($row["city"]).trim($row["xuexiao"]);

echo

"tr

td class='bline fontblack' align = 'center'".$row["id"]."/td

td class='bline' align='left'span class='fontgreen'font color='green'".trim(iconv("gb2312","utf-8",$row["sendname"]))."/font /span给".trim(iconv("gb2312","utf-8",$row1))."的font color='blue'".trim(iconv("gb2312","utf-8",$row["name"]))."/font 的祝福:a href='info.php?id=".$row["id"]."' target='_blank'font color='#E60638'".trim((cut_str(iconv("gb2312","utf-8",$row["neirong"]),20)))."..../font/a/td

td class='bline' align = 'center'".$row["riqi"]."/td

/tr

";

}

?

php 分页

?php

include("connection.php");

$perNumber=10; //每页显示的记录数

$page=$_GET['page']; //获得当前的页面值

$count=mysql_query("select count(*) from user"); //获得记录总数

$rs=mysql_fetch_array($count);

$totalNumber=$rs[0];

$totalPage=ceil($totalNumber/$perNumber); //计算出总页数

if (!isset($page)) {

$page=1;

} //如果没有值,则赋值1

$startCount=($page-1)*$perNumber; //分页开始,根据此方法计算出开始的记录

$result=mysql_query("select * from user limit $startCount,$perNumber"); //根据前面的计算出开始的记录和记录数

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

echo "user_id:".$row[0]."br";

echo "username:".$row[1]."br"; //显示数据库的内容

}

if ($page != 1) { //页数不等于1

?

a href="fenye.php?page=?php echo $page - 1;?"上一页/a !--显示上一页--

?php

}

for ($i=1;$i=$totalPage;$i++) { //循环显示出页面

?

a href="fenye.php?page=?php echo $i;?"?php echo $i ;?/a

?php

}

if ($page$totalPage) { //如果page小于总页数,显示下一页链接

?

a href="fenye.php?page=?php echo $page + 1;?"下一页/a

?php

}

?

================================

这个是很简单的..而且也写了注释..不知道合不合你的意..

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;//赋值

谁来指点一下php通用分页函数该怎么写

function page($sql,$pagesize){

$nowpage=$_GET['nowpage'];//获取当前也

$result=mysql_query($sql);//执行sql查询语句

$total = mysql_num_rows($result);//总记录条数

$totalpage = ceil($total/$pagesize);//总页数

$nowpage=$nowpage1?1:$nowpage;//保证页数始终大于或等于1

if(!$total){//如果没有记录则返回0

return 0;

exit;

}

$nowpage=$nowpage=$totalpage?$totalpage:$nowpage;//判断当前也是否大于总页数 如果大于总页数则当前页为总页数

$nowrow=($nowpage-1)*$pagesize;//当前记录的位置

$result = mysql_query($sql." limit $nowrow,$pagesize");

$url=$_SERVER['PHP_SELF'];//当页的url地址

if($nowpage==1)//如果页数只有一页 则首页和上一页无链接

$st= "div align='center'首页|上一页";

else

$st= "a href=$url?nowpage=1首页/a | a href=$url?nowpage=".($nowpage-1)."上一页/a";

if($nowpage==$totalpage) //如果页数是最后一页 则末页和下一页无链接

$st.="| 下一页 | 末页 ";

else

$st.= "| a href=$url?nowpage=".($nowpage+1)."下一页/a | a href=$url?nowpage=$totalpage末页/a";

$st.= " 到第 select name='nowpage' size='1' onchange='window.location=\"$url?nowpage=\"+this.value'\n";//指定跳转至哪一页

$st.="option value='$nowpage' select$nowpage/option\n";

for ($i = 1; $i = $totalpage; $i++) {

if ($i == $nowpage){}

else

$st.="option value='$i'$i/option\n";

}

$st.="/select 页/br";

$st.="页次:".$nowpage." /". $totalpage."页 共".$total."条信息" ;

return array($result,$st);

}

php实用分页函数方法,php分割函数

2022-12-02
php中字符串分割函数,php文本分割

2023-01-04
PHP实现数组分割

2023-05-11
方便快捷的php长文章分页函数(php分页查询)

2022-11-10
超好用的php分页类(php分页函数)

2022-11-15
PHP字符串分割函数用法详解

2023-05-11
分享一个php分页函数,分享一个php分页函数数据

2022-11-20
php分割字符串函数教程

在PHP编程中,操作字符串是一件非常常见的事情。其中,分割字符串是一种常见的操作。在本文中,我们将介绍PHP中的多种字符串分割函数。所以,若想更好地掌握PHP语言,一个了解这些分割字符串函数的教程即为

2023-12-08
php分页类代码和使用(php分页函数)

2022-11-14
PHP分割字符串函数详解

在实际开发过程中,我们经常需要对字符串进行分割处理。PHP作为一种强大的服务器端语言,提供了多种用于分割字符串的函数。本文将详细介绍PHP中常用的字符串分割函数及其使用方法。 一、explode函数

2023-12-08
使用PHP的explode()函数分割字符串

2023-05-11
php递归分类,php 递归函数无限级分类

2022-11-29
php分页方法,怎么实现分页

2022-11-27
php数组增加逗号分隔,php分割数组

2023-01-04
PHP字符串分割函数详解

2023-05-22
php递归函数处理分类问题,PHP递归函数

2022-11-29
php分割换行,php自动换行

2022-12-02
使用str.split函数分割字符串的方法

2023-05-11
使用PHP的Explode函数进行字符串分割

一、Explode函数简介 PHP中,Explode函数可以将一个字符串按照指定的分隔符分割成一个数组。 函数原型:array explode ( string $delimiter , string

2023-12-08
使用PHP的Explode函数进行字符串分割

一、Explode函数简介 PHP中,Explode函数可以将一个字符串按照指定的分隔符分割成一个数组。 函数原型:array explode ( string $delimiter , string

2023-12-08