Home  >  Article  >  Backend Development  >  [原创]分页中级教程之步进分页,该怎么解决

[原创]分页中级教程之步进分页,该怎么解决

WBOY
WBOYOriginal
2016-06-13 13:40:281280browse

[原创]分页中级教程之步进分页
在初级教程中提到当页码很多的情况,本文主要是针对此处探讨。欢迎拍砖。

源码与之前的初级分页教程差不多,只是在输出翻页链接的地方稍作改进

什么是步进分页呢?这里简单的说一下

当总页数达到好几百的时候,如果按照之前的文章中的做法,那么页面变得很丑,所有的页码都输出来了,因此很不雅观,所以需要对输出的页码数量进行控制。如果你细心,看discuz的分页。最终显示的页码始终不超过一定数量。


PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->




<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>分页实例</title>
<style>
.page A{ padding:3px 5px; float:left; border:solid #CCCCCC 1px; text-decoration:none; font-size:10px; margin-left:1px; font-family:Verdana;color:#000000;}
.page A.currentpage{ color:#FF0000; border: solid red 1px;}
.page A:hover{ background-color:#CCCCCC;}
</style>



//PHP分页实例
error_reporting(7);
//初始化翻页链接参数
$page=$_GET["page"]+0;//思考这里是用强制转换为整数还是用什么方法呢?
$page= $page$total_page?$total_page:$page;//避免$_GET["page"]大于总页数

//翻页链接开始
$page_link="";
if ($total_page>1)
{
    $page_link="<a>一共{$total_page}页</a>";
    $page_link.="<a>当前第{$page}页</a>";
    $page_link.="<a href="?page=1">首页</a>";

    if ($page>1){
        //页码大于1的时候,显示上一页翻页链接
        $pre_page=$page-1;
        $page_link.="<a href="?page=%24pre_page">";
    }
    //翻页列表

    //步进分页,翻页列表的数字始终只显示9个或者自定义的个数,本例定义只显示9个,当前页左右各显示4个页码
    if ($total_page>9)
    {
        if ($page>4)
        {
            $from=$page-4;
            $to=$page+4;
            if ($to>$total_page)
            {
                $from=$total_page-8;
                $to=$total_page;
            }
        }
        else
        {
            $from=1;
            $to=9;
        }

    }
    else
    {
        $from=1;
        $to=$total_page;
    }
    for ($i=$from;$i$i</a>";
        }
        else
        {
            $page_link.="<a href="?page=%24i">$i</a>";
        }

    }
    //页码小于总页数的时候显示下一页翻页链接
    $next_page=$page+1;
    if($next_page>>";
    }
    $page_link.="<a href="?page=%24total_page">最后一页</a>";
}

//输出记录

$offset=($page-1)*$page_size;
$query=mysql_query("select * from product limit $offset,$page_size")  or die(mysql_error());
echo "
    "; while ($rs=mysql_fetch_array($query)) { echo "
  • {$rs["id"]}-{$rs["ename"]}
  • "; } echo "
"; echo "
$page_link
"; ?>



------解决方案--------------------
难得看见的加绿色的文章。。
------解决方案--------------------
好教程,适合新手哦,我有自己的分页类
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn