栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

智能分页算法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

智能分页算法

前一段时间我也有同样的需求。

这是我用来完成此工作的文章(使用PHP代码):
Digg样式分页

它的运行速度非常快,并且为您尝试做的事情增加了一些内容,例如:

[1] 2 3 4 5 6 ... 1001 [2] 3 4 5 6 ... 100...1 ... 4 5 [6] 7 8 ... 100

这是来自断开链接的代码:

<?php        // How many adjacent pages should be shown on each side?    $adjacents = 3;        $query = "SELECt COUNT(*) as num FROM portfolio";    $total_pages = mysql_fetch_array(mysql_query($query));    $total_pages = $total_pages[num];        $limit = 2;//how many items to show per page    if($page)         $start = ($page - 1) * $limit;          //first item to display on this page    else        $start = 0;       //if no page var is given, set start to 0        $query = "SELECt category, uname, title FROM portfolio LIMIT $start, $limit";    $portfolio = mysql_query($query);        if ($page == 0) $page = 1;       //if no page var is given, default to 1.    $prev = $page - 1;    //previous page is page - 1    $next = $page + 1;    //next page is page + 1    $lastpage = ceil($total_pages/$limit);      //lastpage is = total pages / items per page, rounded up.    $lpm1 = $lastpage - 1;//last page minus 1        $pagination = "";    if($lastpage > 1)    {$pagination .= "<div pagination"">";        //previous button        if ($page > 1)  $pagination.= "<a href=""diggstyle.php?page=$prev"">« previous</a>";        else $pagination.= "<span disabled"">« previous</span>";        //pages         if ($lastpage < 7 + ($adjacents * 2))   //not enough pages to bother breaking it up        {    for ($counter = 1; $counter <= $lastpage; $counter++) {     if ($counter == $page)         $pagination.= "<span current"">$counter</span>";     else         $pagination.= "<a href=""diggstyle.php?page=$counter"">$counter</a>";       }        }        elseif($lastpage > 5 + ($adjacents * 2))    //enough pages to hide some        { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2))         {     for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)     {         if ($counter == $page)  $pagination.= "<span current"">$counter</span>";         else  $pagination.= "<a href=""diggstyle.php?page=$counter"">$counter</a>";}     $pagination.= "...";     $pagination.= "<a href=""diggstyle.php?page=$lpm1"">$lpm1</a>";     $pagination.= "<a href=""diggstyle.php?page=$lastpage"">$lastpage</a>";        } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) {     $pagination.= "<a href=""diggstyle.php?page=1"">1</a>";     $pagination.= "<a href=""diggstyle.php?page=2"">2</a>";     $pagination.= "...";     for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)     {         if ($counter == $page)  $pagination.= "<span current"">$counter</span>";         else  $pagination.= "<a href=""diggstyle.php?page=$counter"">$counter</a>";}     $pagination.= "...";     $pagination.= "<a href=""diggstyle.php?page=$lpm1"">$lpm1</a>";     $pagination.= "<a href=""diggstyle.php?page=$lastpage"">$lastpage</a>";        } //close to end; only hide early pages else {     $pagination.= "<a href=""diggstyle.php?page=1"">1</a>";     $pagination.= "<a href=""diggstyle.php?page=2"">2</a>";     $pagination.= "...";     for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)     {         if ($counter == $page)  $pagination.= "<span current"">$counter</span>";         else  $pagination.= "<a href=""diggstyle.php?page=$counter"">$counter</a>";} }        }        //next button        if ($page < $counter - 1)  $pagination.= "<a href=""diggstyle.php?page=$next"">next »</a>";        else $pagination.= "<span disabled"">next »</span>";        $pagination.= "</div>n";}?><ul>    <?php        while($item = mysql_fetch_array($portfolio))        {    ?>        <li><a href="/web/20080709045706/http://www.strangerstudios.com/portfolio//"></a></li>    <?php        }    ?></ul><?=$pagination?>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435315.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号