php+mysql分页问题,分页实现后,页码太多,如何仅显示前10页?
<?php$perNumber=50;//每页显示的记录数$page=$_GET['page'];//获得当前的页面值$count=mysql_query("select...
<?php$perNumber=50; //每页显示的记录数$page=$_GET['page']; //获得当前的页面值$count=mysql_query("select count(*) from 表"); //获得记录总数$rs=mysql_fetch_array($count); $totalNumber=$rs[0];$totalPage=ceil($totalNumber/$perNumber); //计算出总页数if (!isset($page)) { $page=1;} //如果没有值,则赋值1$startCount=($page-1)*$perNumber; //分页开始,根据此方法计算出开始的记录$result=mysql_query("select * from 表 order by id desc limit $startCount,$perNumber"); //根据前面的计算出开始的记录和记录数while ($row=mysql_fetch_array($result)) { echo "{$row['title']}" ; //显示输出内容 }if ($page != 1) { //页数不等于1?><a href="index.php?page=<?php echo $page - 1;?>">上一页</a> <!--显示上一页--><?php}for ($i=1;$i<=$totalPage;$i++) { //循环显示出页面?><a href="index.php?page=<?php echo $i;?>"><?php echo $i ;?></a><?php}if ($page<$totalPage) { //如果page小于总页数,显示下一页链接?><a href="index.php?page=<?php echo $page + 1;?>">下一页</a><?php} ?>
谢谢 展开
谢谢 展开
1个回答
展开全部
php 和html 混编 看起来真是 DT
文件名为t1.php 已经过调试 没有加错误捕捉 表名 tttt
<?php
header("Content-Type: text/html; charset=utf-8");
$dbhost ="127.0.0.1";
$dbuser = "root";
$dbpwd = "*****";
$dbname = "*****";
$charName = "'UTF8'"; //设置查询字符集gbk,gbk2312,utf-8
$mysqli = new mysqli($dbhost,$dbuser,$dbpwd,$dbname);
if (mysqli_connect_errno()){ //注意mysqli_connect_error()新特性
die('Unable to connect!'). mysqli_connect_error();
}
$sql = "SET NAMES ".$charName;
$mysqli->query($sql);
$perNumber=50; //每页显示的记录数
$page=isset($_GET['page'])?$_GET['page']: 1 ; //获得当前的页面值
//echo $page;
$sql="select count(*) as count from tttt";
$rs=$mysqli->query($sql); //获得记录总数
$row=mysqli_fetch_array($rs,MYSQLI_ASSOC) ;
$totalNumber=$row['count'];
$totalPage=ceil($totalNumber/$perNumber); //计算出总页数
$startCount=($page-1)*$perNumber; //分页开始,根据此方法计算出开始的记录
$result=$mysqli->query("select * from tttt order by id desc limit $startCount,$perNumber"); //根据前面的计算出开始的记录和记录数
$maxPageCount=10;
$buffCount=5;
$startPage=1;
if ($page< $buffCount){
$startPage=1;
}else if($page>=$buffCount and $page<$totalPage-$maxPageCount ){
$startPage=$page-$buffCount+1;
}else{
$startPage=$totalPage-$maxPageCount+1;
}
$endPage=$startPage+$maxPageCount-1;
$htmlstr="";
$line=1;
while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){
$htmlstr.=$line."行";
$htmlstr.=$row['id']." </br>";
$line++;
}
$htmlstr.="<table><tr>";
if ($page > 1){
$htmlstr.="<td> <a href='t1.php?page=". 1 ."' >第一页</a> </td>";
$htmlstr.="<td> <a href='t1.php?page=". ($page-1) ."' >上一页</a> </td>";
}
for ($i=$startPage;$i<=$endPage; $i++){
$htmlstr.="<td><a href='t1.php?page=".$i."'>".$i."</a></td>";
}
if ($page<$totalPage){
$htmlstr.="<td><a href='t1.php?page=".($page+1) . "' >下一页</a> </td>";
$htmlstr.="<td><a href='t1.php?page=".$totalPage . "' >最后页</a> </td>";
}
$htmlstr.="</tr></table>";
echo $htmlstr;
?>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询