php分页示例代码

时间:2021-05-26

<?php

$conn=mysql_connect("localhost","root","");
$maxnum=2;//每页显示记录条数
mysql_select_db("test",$conn);
$query1="SELECTCOUNT(*)AStotalrowsFROMtest";
$result1=mysql_query($query1,$conn)ordie(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*FROMtestLIMIT$startnum,$maxnum";//选择出符合要求的数据从$startnum条数据开始,选出$maxnum行
$result=mysql_query($query,$conn)ordie(mysql_error());
$row=mysql_fetch_assoc($result);
?>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>分页示例</title>
<scriptlanguage="JavaScript"type="text/JavaScript">
<!--
functionMM_jumpMenu(targ,selObj,restore){//v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if(restore)selObj.selectedIndex=0;
}
//-->
</script>
<styletype="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>
<tablewidth="30%"border="0"align="center"cellpadding="0"cellspacing="1"class="tb">
<tr>
<tdheight="24"><divalign="left">分页示例</div></td>
</tr>
<?phpif($totalRows1){//记录集不为空显示
do{
?>
<trclass="tr">
<tdheight="24"><divalign="center"><?phpecho$row['id'];?></div></td>
</tr>
<?php}while($row=mysql_fetch_assoc($result));?>
</table>
<tablewidth="95%"border="0"align="center"cellpadding="0"cellspacing="0">
<tr><formname="form1">
<tdheight="27"><divalign="center">
<?php
echo"共计<fontcolor="#ff0000">$totalRows1</font>条记录";
echo"<fontcolor="#ff0000">".$page."</font>"."/".$totalpages."页";
//实现<<<12345>>>分页链接
$pre=$page-1;//上一页
$next=$page+1;//下一页
$maxpages=4;//处理分页时<<<1234>>>显示4页
$pagepre=1;//如果当前页面是4,还要显示前$pagepre页,如<<<3/4/56>>>把第3页显示出来
if($page!=1){echo"<ahref='".$_SERVER['PHP_SELF']."'><<</a>";
echo"<ahref='".$_SERVER['PHP_SELF'].'?page='.$pre."'><</a>";}
if($maxpages>=$totalpages)//如果总记录不足以显示4页
{$pgstart=1;$pgend=$totalpages;}//就不所以的页面打印处理
elseif(($page-$pagepre-1+$maxpages)>$totalpages)//就好像总页数是6,当前是5,则要把之前的34显示出来,而不仅仅是4
{$pgstart=$totalpages-$maxpages+1;$pgend=$totalpages;}
else{
$pgstart=(($page<=$pagepre)?1:($page-$pagepre));//当前页面是1时,只会是1234>>>而不会是0123>>>
$pgend=(($pgstart==1)?$maxpages:($pgstart+$maxpages-1));
}
for($pg=$pgstart;$pg<=$pgend;$pg++){//跳转菜单
if($pg==$page)echo"<ahref="".$_SERVER['PHP_SELF']."?page=$pg"><fontcolor="#ff0000">$pg</font></a>";
elseecho"<ahref="".$_SERVER['PHP_SELF']."?page=$pg">$pg</a>";
}
if($page!=$totalpages)
{echo"<ahref='".$_SERVER['PHP_SELF'].'?page='.$next."'>></a>";
echo"<ahref='".$_SERVER['PHP_SELF'].'?page='.$totalpages."'>>></a>";}
?>
<selectname="menu1"onChange="MM_jumpMenu('parent',this,0)">
<optionvalue="">选择</option>
<?phpfor($pg1=1;$pg1<=$totalpages;$pg1++){
echo"<optionvalue="".$_SERVER['PHP_SELF']."?page=$pg1">".$pg1."</option>";
}?>
</select>
</td></form>
</tr>
</table>
<?php}else{//记录集为空时显示?>
<trclass="tr">
<tdheight="24"><divalign="center">没有任何记录</div></td>
</tr>
</table>
<?php}?>
</body>
</html>
<?php
mysql_free_result($result1);
mysql_free_result($result);
?>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章