PHP语言之PHPMySQL下分页显示的实现
小标 2018-09-14 来源 : 阅读 1891 评论 0

摘要:本文主要向大家介绍了PHP语言之PHPMySQL下分页显示的实现,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言之PHPMySQL下分页显示的实现,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

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


每页多少条记录($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从数据库内获取数据并显示了。以下我将用具体代码加以说明。
简单代码实现
请详细阅读以下代码,自己调试运行一次,最好把它修改一次,加上自己的功能,比如搜索等等。

// 建立数据库连接

$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 .= '第一页|.($page-1).'>上一页|';

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

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

}

else{

  $page_string .= '.($page+1).'>下一页|.$page_count.'>尾页';

}

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

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就可以很简单的用得到的二维数组来显示结果

?>

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved