好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

php分页显示布局 php分页函数封装

很多站长朋友们都不太清楚php分页显示布局,今天小编就来给大家整理php分页显示布局,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php如何分页显示并排序文件 2、 高分求用php实现分页显示 3、 PHP如何实现分页显示? 4、 php分页显示 5、 php 如何分行分页显示 6、 php中的分页显示 php如何分页显示并排序文件

你这个可以换个思路,把文件的名称生成好,放到一个文本中,然后在分页,这样就容易的多了。也就是说,你必须有个临界点。表明你在第几页,其他的都好说。

但好像没那么复杂,可以直接分页,你获取了文件夹中文件的名称,总数,按照你设计的每页显示的个数显示不就行了。

》》》望采纳

高分求用php实现分页显示

我没有看百度文学上那个,我写过的一个分页函数是这样的,可以直接调用。

$query是查询语句select * from XXX;

$page_id 是页号

$num_per_page每页数量

函数体中大致思路就是做一次统计查询,处理页码信息和链接的网页标签,返回一个查询语句。

1.先执行select * from XXX;获得总页数的统计

2.处理页码信息和链接的网页标签

3.再组织返回查询语句global $query select * from XXX limit $page_jump,$num_per_page;

带入参数,调用函数以后,再直接用$query变量作为查询语句,做数据库处理,就可以得到需要的返回值了

<?php

class myfunction{

function page($query,$page_id,$num_per_page){

global $query;

$page_id=$_GET['page_id'];

if ($page_id==""){

$page_id=1;

}

$rst=mysql_query($query);

$num=mysql_num_rows($rst);

if ($num==0){

echo "没有数据<br>";

}

$page_num=ceil($num/$num_per_page);

$page_up=$page_id-1;

$page_down=$page_id+1;

if ($page_num>1){

if ($page_id==1){

echo "<a href=?".$add."page_id=$page_down>下一页</a>  

第".$page_id."页,共".$page_num."页";

}

else if ($page_id>=$page_num){

echo "<a href=?".$add."page_id=$page_up>上一页</a>  

第".$page_id."页,共".$page_num."页";

}

else {

echo "<a href=?".$add."page_id=$page_up>上一页</a>  

<a href=?".$add."page_id=$page_down>下一页</a>  

第".$page_id."页,共".$page_num."页";

}

$page_jump=$num_per_page*($page_id-1);

$query=$query."limit $page_jump,$num_per_page";

}

else{

echo "  

第".$page_id."页,共".$page_num."页";

$page_jump=$num_per_page*($page_id-1);

$query=$query."limit $page_jump,$num_per_page";

}

}

}

?>

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("参数不全!>

php分页显示

<?

$sql="select * from table ";//查表

$res=mysql_query($sql);//取得结果

$nums=mysql_num_rows($res);//取得总记录数

$pagesize=15;//设定每页的记录数

$pages=ceil($nums/$pagesize);//取得总页数

if($pages<1){$pages=1;}//设定总页数至少1页

$page=$_GET[page];//取得传递过来的页数

if($page>$pages){$page=$pages;}//如果传递过来的页数比总页数还大,就让它等于总页数

if($page<1){$page=1;}//如果传递过来的页数小于1,就让他等于1

$kaishi=($page-1)*$pagesize;//为下一步做准备,limit的初始记录

$sql="select * from table order by id desc limit $kaishi,$pagesize";//取得记录从计算出的初始值开始,一共$pagesize条

$res=mysql_query($sql);//取得结果

while($arr=mysql_fetch_array($res))

{

echo $arr[id]."---".$arr[biaoti].'<br>';//输出记录的ID和标题

}

?>

下面是分页<br />

<a href="?page=1">首页</a> <a href="?page=<? echo $page-1;?>">上页</a> 当前第<? echo $page;?>页 <a href="?page=<? echo $page+1;?>">下页</a> <a href="?page=<? echo $pages;?>">尾页</a>

php 如何分行分页显示

我看了你使用table实现的,这样要每行显示5个,是可以实现,但是要增加一些判断,这样就多了没必要的PHP代码;

建议你用div写,然后控制整理宽度,也就是说你5个图片循环出来的宽度不能大于没一行的宽度,大了后,也就是第6张图的div就会从第二行开始排列了。这里设置固定的像素,就不会受浏览器的 影响。

参考这个样式代码:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

<style type="text/css">

<!--

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

}

.alldiv{

width:685px; /*137*5=685 */

}

.xunhuan {

width:137px;

float:left

}

-->

</style></head>

<body>

<div class="alldiv">

<div class="xunhuan"><img src="" width="137" height="80"></div>

<div class="xunhuan"><img src="" width="137" height="80"></div>

<div class="xunhuan"><img src="" width="137" height="80"></div>

<div class="xunhuan"><img src="" width="137" height="80"></div>

<div class="xunhuan"><img src="" width="137" height="80"></div>

<div class="xunhuan"><img src="" width="137" height="80"></div>

<div class="xunhuan"><img src="" width="137" height="80"></div>

<div class="xunhuan"><img src="" width="137" height="80"></div>

</div>

</body>

</html>

php中的分页显示

1、前言

分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解。本文适合初学者阅读,所有示例代码均使用php编写。

2、原理

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:

每页多少条记录($PageSize)?

当前是第几页($CurrentPageID)?

现在只要再给我一个结果集,我就可以显示某段特定的结果出来。

至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。

以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。

前10条记录:select * from table limit 0,10

第11至20条记录:select * from table limit 10,10

第21至30条记录:select * from table limit 20,10

……

这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:

select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize

拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。搞定了最重要的如何获取数据的问题以后,剩下的就仅仅是传递参数,构造合适的sql语句然后使用php从数据库内获取数据并显示了。以下我将用具体代码加以说明。

3、简单代码

请详细阅读以下代码,自己调试运行一次,最好把它修改一次,加上自己的功能,比如搜索等等。

<?php

// 建立数据库连接

$link = mysql_connect("localhost", "mysql_user", "mysql_password")

or die("Could not connect: " . mysql_error());

// 获取当前页数

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

$page = intval( $_GET['page'] );

}

else{

$page = 1;

}

// 每页数量

$PageSize = 10;

// 获取总数据量

$sql = "select count(*) as amount from table";

$result = mysql_query($sql);

$row = mysql_fetch_row($result);

$amount = $row['amount'];

// 记算总共有多少页

if( $amount ){

if( $amount < $page_size ){ $page_count = 1; } //如果总数据量小于$PageSize,那么只有一页

if( $amount % $page_size ){ //取总数据量除以每页数的余数

$page_count = (int)($amount / $page_size) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一

}else{

$page_count = $amount / $page_size; //如果没有余数,则页数等于总数据量除以每页数的结果

}

}

else{

$page_count = 0;

}

// 翻页链接

$page_string = '';

if( $page == 1 ){

$page_string .= '第一页|上一页|';

}

else{

$page_string .= '<a href="/?page=1>";第一页</a>|<a href="/?page='."($page-1).'>上一页</a>|';

}

if( ($page == $page_count) || ($page_count == 0) ){

$page_string .= '下一页|尾页';

}

else{

$page_string .= '<a href="/?page='."($page+1).'>下一页</a>|<a href="/?page='."$page_count.'>尾页</a>';

}

// 获取数据,以二维数组格式返回结果

if( $amount ){

$sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size";

$result = mysql_query($sql);

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

$rowset[] = $row;

}

}else{

$rowset = array();

}

// 没有包含显示结果的代码,那不在讨论范围,只要用foreach就可以很简单的用得到的二维数组来显示结果

?>

4、OO风格代码

以下代码中的数据库连接是使用的pear db类进行处理

<?php

// FileName: Pager.class.php

// 分页类,这个类仅仅用于处理数据结构,不负责处理显示的工作

Class Pager

{

var $PageSize; //每页的数量

var $CurrentPageID; //当前的页数

var $NextPageID; //下一页

var $PreviousPageID; //上一页

var $numPages; //总页数

var $numItems; //总记录数

var $isFirstPage; //是否第一页

var $isLastPage; //是否最后一页

var $sql; //sql查询语句

function Pager($option)

{

global $db;

$this->_setOptions($option);

// 总条数

if ( !isset($this->numItems) )

{

$res = $db->query($this->sql);

$this->numItems = $res->numRows();

}

// 总页数

if ( $this->numItems > 0 )

{

if ( $this->numItems < $this->PageSize ){ $this->numPages = 1; }

if ( $this->numItems % $this->PageSize )

{

$this->numPages= (int)($this->numItems / $this->PageSize) + 1;

}

else

{

$this->numPages = $this->numItems / $this->PageSize;

}

}

else

{

$this->numPages = 0;

}

switch ( $this->CurrentPageID )

{

case $this->numPages == 1:

$this->isFirstPage = true;

$this->isLastPage = true;

break;

case 1:

$this->isFirstPage = true;

$this->isLastPage = false;

break;

case $this->numPages:

$this->isFirstPage = false;

$this->isLastPage = true;

break;

default:

$this->isFirstPage = false;

$this->isLastPage = false;

}

if ( $this->numPages > 1 )

{

if ( !$this->isLastPage ) { $this->NextPageID = $this->CurrentPageID + 1; }

if ( !$this->isFirstPage ) { $this->PreviousPageID = $this->CurrentPageID - 1; }

}

return true;

}

/***

*

* 返回结果集的数据库连接

* 在结果集比较大的时候可以直接使用这个方法获得数据库连接,然后在类之外遍历,这样开销较小

* 如果结果集不是很大,可以直接使用getPageData的方式获取二维数组格式的结果

* getPageData方法也是调用本方法来获取结果的

*

***/

function getDataLink()

{

if ( $this->numItems )

{

global $db;

$PageID = $this->CurrentPageID;

$from = ($PageID - 1)*$this->PageSize;

$count = $this->PageSize;

$link = $db->limitQuery($this->sql, $from, $count); //使用Pear DB::limitQuery方法保证数据库兼容性

return $link;

}

else

{

return false;

}

}

/***

*

* 以二维数组的格式返回结果集

*

***/

function getPageData()

{

if ( $this->numItems )

{

if ( $res = $this->getDataLink() )

{

if ( $res->numRows() )

{

while ( $row = $res->fetchRow() )

{

$result[] = $row;

}

}

else

{

$result = array();

}

return $result;

}

else

{

return false;

}

}

else

{

return false;

}

}

function _setOptions($option)

{

$allow_options = array(

'PageSize',

'CurrentPageID',

'sql',

'numItems'

);

foreach ( $option as $key => $value )

{

if ( in_array($key, $allow_options) ($value != null) )

{

$this->$key = $value;

}

}

return true;

}

}

?>

<?php

// FileName: test_pager.php

// 这是一段简单的示例代码,前边省略了使用pear db类建立数据库连接的代码

require "Pager.class.php";

if ( isset($_GET['page']) )

{

$page = (int)$_GET['page'];

}

else

{

$page = 1;

}

$sql = "select * from table order by id";

$pager_option = array(

"sql" => $sql,

"PageSize" => 10,

"CurrentPageID" => $page

);

if ( isset($_GET['numItems']) )

{

$pager_option['numItems'] = (int)$_GET['numItems'];

}

$pager = @new Pager($pager_option);

$data = $pager->getPageData();

if ( $pager->isFirstPage )

{

$turnover = "首页|上一页|";

}

else

{

$turnover = "<a href='?page=1numItems=".$pager->numItems."'>首页</a>|<a href="/?page=".$pager->PreviousPageID."numItems=".$pager->numItems."'>上一页</a>|";

}

if ( $pager->isLastPage )

{

$turnover .= "下一页|尾页";

}

else

{

$turnover .= "<a href="/?page=".$pager->NextPageID."numItems=".$pager->numItems."'>下一页</a>|<a href="/?page=".$pager->numPages."numItems=".$pager->numItems."'>尾页</a>";

}

?>

需要说明的地方有两个:

这个类仅仅处理数据,并不负责处理显示,因为我觉得将数据的处理和结果的显示都放到一个类里边实在是有些勉强。显示的时候情况和要求多变,不如自己根据类给出的结果处理,更好的方法是根据这个Pager类继承一个自己的子类来显示不同的分页,比如显示用户分页列表可以:

<?php

Class MemberPager extends Pager

{

function showMemberList()

{

global $db;

$data = $this->getPageData();

// 显示结果的代码

// ......

}

}

/// 调用

if ( isset($_GET['page']) )

{

$page = (int)$_GET['page'];

}

else

{

$page = 1;

}

$sql = "select * from members order by id";

$pager_option = array(

"sql" => $sql,

"PageSize" => 10,

"CurrentPageID" => $page

);

if ( isset($_GET['numItems']) )

{

$pager_option['numItems'] = (int)$_GET['numItems'];

}

$pager = @new MemberPager($pager_option);

$pager->showMemberList();

?>

第二个需要说明的地方就是不同数据库的兼容性,在不同的数据库里截获一段结果的写法是不一样的。

mysql: select * from table limit offset, rows

pgsql: select * from table limit m offset n

......

所以要在类里边获取结果的时候需要使用pear db类的limitQuery方法。

ok,写完收功,希望花时间看完这些文字的你不觉得是浪费了时间。

关于php分页显示布局的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php分页显示布局 php分页函数封装的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did168458
更新时间:2023-04-11   阅读:31次

上一篇: 关于php提示export的信息

下一篇:php指定后退页面 php返回数据给前端

相关资讯

最新资料更新

  • 1.织梦dedecms获取上一篇下一篇文章链接的方法
  • 2.DedeTag Engine Create File False 提示的种种原因及解决方法小结
  • 3.dedecms文章页上一篇与下一篇标题长度截取的方法
  • 4.织梦dedecms配置手机wap站点并绑定二级域名
  • 5.dedecms列表页缩略图大小控制的方法
  • 6.织梦dedecms两种内容模型的文档进行合并的方法
  • 7.DedeCMS中function=Html2Text(@me)的用法分析
  • 8.dedecms列表页调用文章正文内容的方法
  • 9.dedecms网页压缩seo之gzip设置技巧
  • 10.dedecms织梦模板中plus文件作用介绍及安全设置详解
  • 11.织梦DEDECMS网站栏目页获取当前顶级栏目名称的标签
  • 12.织梦网站后台底部被挂黑链的解决方法详细解析
  • 13.织梦(dedecms)循环调用多级子栏目如二级栏目下三级栏目
  • 14.解决Dedecms生成RSS地图地址出错全都多了一个网址的问题
  • 15.织梦手机站关闭自动生成首页index.html的方法
  • 16.DEDE列表页及文章页调用TAG标签并加入自己的样式
  • 17.Dedecms图集批量上传提示报错302的解决方法
  • 18.织梦DEDECMS提示信息提示框美化
  • 19.dede查询列表中单独显示查到了多少条记录
  • 20.Dedecms获取登录用户名与ID号的方法

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]