• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP从零单排(十四)数据分页显示的原理_php

php 搞代码 3年前 (2018-06-21) 140次浏览 已收录 0个评论

分页显示是web编程中最频繁处理的环节之一。所谓分页显示,就是通过程序将结果集一段一段的来显示。实现分页显示,需要两个初始参数:每页显示多少记录和当前是第几页。再加上完整的结果集,就可以实现数据的分页显示。至于其他功能,比如上一页、下一页等均可以根据以上信息加以处理得到。

要取得某表中的前10条记录,可以使用如下SQL语句:

SELECT * FROM a_table LIMIT 0,10

要查找第11到第20条记录,使用的SQL语句如下所示:

SELECT * FROM a_table LIMIT 10,10

如要查找第21条到第30条记录,使用的SQL语句如下所示:

SELECT * FROM a_table LIMIT 20,10

以上SQL语句可以看出,每次取10条记录,相当于每个页面显示10条数据,而每次所要取得记录的起始位置和当期页数之间存在着这样的关系:起始位置=(当前页数-1)*每页要显示的记录数。如果以变量$page_size表示每页显示的记录数,以变量$cur_page表示当前页数,那么上述可以用下面所示的SQL语句模板归纳:

select * from table limit ($cur_page-1)*$page_size,$page_size;

这样,就得到了分页情况下获取数据的SQL语句。其中$page_size可以根据实际情况制定为一个定值,实际开发中,当前页面$cur_page可以由参数传入。另外,数据要显示的总页数,可以在记录总数和每页显示的记录数之间通过计算获得。比如,如果总记录数除以每页显示的记录数后,没有余数,那么总页数就是这二者之商。

mysql_error()); } mysql_select_db('test'); if(isset($_GET['page'])) {  $page=$_GET['page']; } else {  $page=1; } $page_size=2; $sql='select * from users'; $result=mysql_query($sql); $total=mysql_num_rows($result); if($total) {  if($total<$page_size)  $page_count=1;  if($total%$page_size)  {   $page_count=(int)($total/$page_size)+1;  }  else  {   $page_count=$total/$page_size;  } } else {  $page_count=0; } $turn_page=''; if($page==1) {  $turn_page.='Index  Before '; } else {  $turn_page.='Index  Before '; } if($page==$page_count  $page_count==0) {  $turn_page.='Next  Last'; } else {  $turn_page.=' Next    Last '; } $sql='select id,name,sex,age from users limit '.($page-1)*$page_size.','.$page_size; $result=mysql_query($sql) OR die ("
ERROR:".mysql_error()."
SQL:".$sql); ?> 13-8.php

**********************

POST GET ,是提交表单的两种方式,GET传值就用$_GET获取,POST提交表单就用$_POST
post与get的区别是一个在地址栏显示参数,另一个不显示

举个例子,如果你登录的时候用get方式,那么你的值就会在地址栏上显示,这样就无安全性可言
而你在搜索或者有页码的时候 用post把参数在地址栏上隐藏起来,这样就毫无意义

http://www.gaodaima.com/51185.htmlphp从零单排(十四)数据分页显示的原理_php

而用$_GET可以获得浏览器地址栏上的参数的值(?问号后面的一串字符),比如www.baidu.com/s?wd=123,那么你用$_GET,就可以获取参数(你可以理解为事件,动作,或者参数,该值在传递表单时与input的name一致)为wd的值123,多个参数用&符连接,比如?an=0&si=5理解为an参数的值为0与si参数的值为5。

**********************

打个比方说,你输入一个地址叫 http://www.iron-feet.cn/?page=2
$_GET[“page”]就是获得地址上这个page的值,即得到2

欢迎大家阅读《PHP从零单排(十四)数据分页显示的原理_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
ID
Name
Sex
Age