dongsui5464 2014-02-08 10:16
浏览 100
已采纳

只有下一个和上一个按钮的简单分页

Just have a simple question. This is a pagination code that use in one of my websites. i just want to make this more simple. Remove all page numbers and just keep "Next" and "Previous" links.

Can anyone point me out what part of the script that i need to remove to get rid of page numbers. Really appreciate your help.

<?php
error_reporting(E_ALL ^ E_NOTICE);
// How many adjacent pages should be shown on each side?
    $adjacents = 5;

    $query = $mysqli->query("select COUNT(*) as num from posts order by id  desc");
    $total_pages = mysqli_fetch_array($query);
    $total_pages = $total_pages['num'];

    $limit = 12;                                //how many items to show per page
    $page = $_GET['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
    /* Get data. */
    $result = $mysqli->query("select * from posts order by id  desc LIMIT $start, $limit");

    /* Setup page vars for display. */
    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 class=\"pagination\">";
        //previous button
        if ($page > 1) 
            $pagination.= "<a href=\"videos-$prev.html\">« previous</a>";
        else
            $pagination.= "<span class=\"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 class=\"current\">$counter</span>";
                else
                    $pagination.= "<a href=\"videos-$counter.html\">$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 class=\"current\">$counter</span>";
                    else
                        $pagination.= "<a href=\"videos-$counter.html\">$counter</a>";                  
                }
                $pagination.= "...";
                $pagination.= "<a href=\"videos-$lpm1.html\">$lpm1</a>";
                $pagination.= "<a href=\"videos-$lastpage.html\">$lastpage</a>";        
            }
            //in middle; hide some front and some back
            elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
            {
                $pagination.= "<a href=\"videos-1.html\">1</a>";
                $pagination.= "<a href=\"videos-2.html\">2</a>";
                $pagination.= "...";
                for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<span class=\"current\">$counter</span>";
                    else
                        $pagination.= "<a href=\"videos-$counter.html\">$counter</a>";                  
                }
                $pagination.= "...";
                $pagination.= "<a href=\"videos-$lpm1.html\">$lpm1</a>";
                $pagination.= "<a href=\"videos-$lastpage.html\">$lastpage</a>";        
            }
            //close to end; only hide early pages
            else
            {
                $pagination.= "<a href=\"videos-1.html\">1</a>";
                $pagination.= "<a href=\"videos-2.html\">2</a>";
                $pagination.= "...";
                for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<span class=\"current\">$counter</span>";
                    else
                        $pagination.= "<a href=\"videos-$counter.html\">$counter</a>";                  
                }
            }
        }

        //next button
        if ($page < $counter - 1) 
            $pagination.= "<a href=\"videos-$next.html\">next »</a>";
        else
            $pagination.= "<span class=\"disabled\">next »</span>";
        $pagination.= "</div>
";       
    }

    $q = $mysqli->query("select * from posts order by id desc limit $start,$limit");


    while($row=mysqli_fetch_assoc($q)){


// LOOP Code


}  echo $pagination;?>
  • 写回答

3条回答 默认 最新

  • duangong1979 2014-02-08 10:28
    关注
    <?php
    error_reporting(E_ALL ^ E_NOTICE);
    // How many adjacent pages should be shown on each side?
        $adjacents = 5;
    
        $query = $mysqli->query("select COUNT(*) as num from posts order by id  desc");
        $total_pages = mysqli_fetch_array($query);
        $total_pages = $total_pages['num'];
    
        $limit = 12;                                //how many items to show per page
        $page = $_GET['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 
        /* Get data. */
        $result = $mysqli->query("select * from posts order by id  desc LIMIT $start, $limit");
    
        /* Setup page vars for display. */
        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 class=\"pagination\">";
            //previous button
            if ($page > 1) 
                $pagination.= "<a href=\"videos-$prev.html\">« previous</a>";
            else
                $pagination.= "<span class=\"disabled\">« previous</span>"; 
    
            //next button
            if ($page < $lastpage) 
                $pagination.= "<a href=\"videos-$next.html\">next »</a>";
            else
                $pagination.= "<span class=\"disabled\">next »</span>";
            $pagination.= "</div>
    ";       
        }
    
        $q = $mysqli->query("select * from posts order by id desc limit $start,$limit");
    
    
        while($row=mysqli_fetch_assoc($q)){
    
    
    // LOOP Code
    
    
    }  echo $pagination;?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误