php分页示例代码
前端之家收集整理的这篇文章主要介绍了
php分页示例代码,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP
/
需求,建立一个test数据库,在里边建一个test表,里面就
只要id字段,输入一下数据就可以啦。。
由于水平有限,难免出错。。
/
$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);
?>
<
Metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
分页示例 <scriptlanguage="JavaScript"type="text/JavaScript">
<styletype="text/css">
a{text-decoration:none;}
a:hover{text-decoration:underline}
table{font-size:12px;}
.tb{background-color:#73BB95}
.tr{background-color:#FFFFFF}
<tablewidth="30%"border="0"align="center"cellpadding="0"cellspacing="1"class="tb">
<tr>
<tdheight="24"><divalign="left">
分页示例
</td>
</tr>
<?
PHPif($totalRows1){//记录集不为空
显示 do{
?>
<trclass="tr">
<tdheight="24"><divalign="center"><?phpecho$row['id'];?>
</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条记录";
echo"<fontcolor="#ff0000">".$page.""."/".$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']."'><<";
echo"<ahref='".$_SERVER['PHP_SELF'].'?page='.$pre."'><";}
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";
elseecho"<ahref="".$_SERVER['PHP_SELF']."?page=$pg">$pg";
}
if($page!=$totalpages)
{echo"<ahref='".$_SERVER['PHP_SELF'].'?page='.$next."'>>";
echo"<ahref='".$_SERVER['PHP_SELF'].'?page='.$totalpages."'>>>";}
?>
<selectname="menu1"onChange="MM_jumpMenu('parent',this,0)">
<optionvalue="">选择
<?
PHPfor($pg1=1;$pg1<=$totalpages;$pg1++){
echo"<optionvalue="".$_SERVER['
PHP_SELF']."?page=$pg1">".$pg1."";
}?>
</td>
</tr>
</table>
<?php}else{//记录集为空时显示?>
<trclass="tr">
<tdheight="24"><divalign="center">没有任何记录