php分页示例代码


Posted in PHP onMarch 19, 2007

<?php 
/* 
需求,建立一个test数据库,在里边建一个test表,里面就 
只要id字段,输入一下数据就可以啦。。 
由于水平有限,难免出错。。 
*/ 
$conn = mysql_connect("localhost","root",""); 
$maxnum = 2;  //每页显示记录条数 
mysql_select_db("test", $conn); 
$query1 = "SELECT COUNT(*) AS totalrows FROM test "; 
$result1 = mysql_query($query1, $conn) or die(mysql_error()); 
$row1 = mysql_fetch_assoc($result1); 
$totalRows1 = $row1['totalrows'];  //数据集数据总条数 
$totalpages = ceil($totalRows1/$maxnum);//计算可分页总数,ceil()为上舍函数 
if(!isset($_GET['page']) || !intval($_GET['page']) || $_GET['page'] > $totalpages) $page = 1;  //对3种出错进行默认处理 
//在url参数page不存在时,page不为10进制数时,page大于可分页数时,默认为1 
else $page = $_GET['page']; 
$startnum = ($page - 1)*$maxnum; //从数据集第$startnum条开始取,注意数据集是从0开始的 
$query = "SELECT * FROM test LIMIT $startnum,$maxnum";//选择出符合要求的数据 从$startnum条数据开始,选出$maxnum行 
$result = mysql_query($query, $conn) or die(mysql_error()); 
$row = mysql_fetch_assoc($result); 
?> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>分页示例</title> 
<script language="JavaScript" type="text/JavaScript"> 
<!-- 
function MM_jumpMenu(targ,selObj,restore){ //v3.0 
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); 
  if (restore) selObj.selectedIndex=0; 

//--> 
</script> 
<style type="text/css"> 
a{text-decoration:none;} 
a:hover{text-decoration:underline} 
table{font-size:12px;} 
.tb{background-color:#73BB95} 
.tr{background-color:#FFFFFF} 
</style> 
</head> 
<body> 
<table width="30%"  border="0" align="center" cellpadding="0" cellspacing="1" class="tb"> 
  <tr> 
    <td height="24"><div align="left">分页示例</div></td> 
  </tr> 
  <?php if($totalRows1) {//记录集不为空显示 
  do {  
  ?> 
  <tr class="tr"> 
    <td height="24"><div align="center"><?php echo $row['id'];?></div></td> 
  </tr> 
  <?php }while($row = mysql_fetch_assoc($result));?> 
</table> 
<table width="95%"  border="0" align="center" cellpadding="0" cellspacing="0"> 
  <tr><form name="form1"> 
    <td height="27"><div align="center"> 
    <?php  
     echo "共计<font color="#ff0000">$totalRows1</font>条记录"; 
     echo "<font color="#ff0000">".$page."</font>"."/".$totalpages."页 ";  
    //实现 << < 1 2 3 4 5> >> 分页链接 
    $pre = $page - 1;//上一页 
    $next = $page + 1;//下一页 
    $maxpages = 4;//处理分页时 << < 1 2 3 4 > >>显示4页 
    $pagepre = 1;//如果当前页面是4,还要显示前$pagepre页,如<< < 3 /4/ 5 6 > >> 把第3页显示出来 
    if($page != 1) { echo "<a href='".$_SERVER['PHP_SELF']."'><<</a> "; 
    echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$pre."'><</a> ";} 
    if($maxpages>=$totalpages) //如果总记录不足以显示4页 
    {$pgstart = 1;$pgend = $totalpages;}//就不所以的页面打印处理 
    elseif(($page-$pagepre-1+$maxpages)>$totalpages)//就好像总页数是6,当前是5,则要把之前的3 4 显示出来,而不仅仅是4 
    {$pgstart = $totalpages - $maxpages + 1;$pgend = $totalpages;} 
    else{ 
    $pgstart=(($page<=$pagepre)?1:($page-$pagepre));//当前页面是1时,只会是1 2 3 4 > >>而不会是 0 1 2 3 > >> 
    $pgend=(($pgstart==1)?$maxpages:($pgstart+$maxpages-1)); 
    } 
    for($pg=$pgstart;$pg<=$pgend;$pg++){ //跳转菜单 
    if($pg == $page) echo "<a href="".$_SERVER['PHP_SELF']."?page=$pg"><font color="#ff0000">$pg</font></a> "; 
    else echo "<a href="".$_SERVER['PHP_SELF']."?page=$pg">$pg</a> "; 
    } 
    if($page != $totalpages) 
    {echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$next."'>></a> "; 
    echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$totalpages."'>>></a> ";} 
    ?> 
      <select name="menu1" onChange="MM_jumpMenu('parent',this,0)"> 
      <option value="">选择</option> 
      <?php for($pg1=1;$pg1<=$totalpages;$pg1++) { 
       echo "<option value="".$_SERVER['PHP_SELF']."?page=$pg1">".$pg1."</option>"; 
      }?> 
      </select> 
    </td></form> 
  </tr> 
</table> 
<?php } else {//记录集为空时显示?> 
<tr class="tr"> 
    <td height="24"><div align="center">没有任何记录</div></td> 
  </tr> 
  </table> 
<?php }?> 
</body> 
</html> 
<?php  
mysql_free_result($result1); 
mysql_free_result($result); 
?> 

PHP 相关文章推荐
用PHP读取和编写XML DOM的实现代码
Feb 03 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
json的键名为数字时的调用方式(示例代码)
Nov 15 PHP
PHP内核探索:变量存储与类型使用说明
Jan 30 PHP
采用thinkphp自带方法生成静态html文件详解
Jun 13 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
阿里云PHP SMS短信服务验证码发送方法
Jul 11 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
php无限极分类实现方法分析
Jul 04 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 #PHP
IIS6的PHP最佳配置方法
Mar 19 #PHP
php中的实现trim函数代码
Mar 19 #PHP
php中判断一个字符串包含另一个字符串的方法
Mar 19 #PHP
php之字符串变相相减的代码
Mar 19 #PHP
PHP入门速成教程
Mar 19 #PHP
phpMyAdmin 安装教程全攻略
Mar 19 #PHP
You might like
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
PHP中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
Node登录权限验证token验证实现的方法示例
2020/05/25 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python3.x对JSON的一些操作示例
2017/09/01 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
电气专业推荐信范文
2013/11/18 职场文书
应用化学专业职业生涯规划书
2014/01/22 职场文书
生日宴会策划方案
2014/06/03 职场文书
上海世博会口号
2014/06/19 职场文书
教师年终个人总结
2015/02/11 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python
PHP实现考试倒计时功能代码
2021/04/16 PHP