Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 易于使用的分页_Php_Pagination - Fatal编程技术网

Php 易于使用的分页

Php 易于使用的分页,php,pagination,Php,Pagination,我正试图让一个好的分页器工作,但我在让即将到来的/中间的数字正常工作方面遇到了困难 目标是显示结果集的第一个和最后5个页面,而不管您在哪个页面上,但这些第一个和最后5个页面只能在有足够的页面允许的情况下显示 分页将如下所示:> 只有几页:> 如何避免这种情况?:> 到目前为止,我的代码是: function pagination_links($page, $num_rows, $results_per_page, $each_direction = 3) { $total_pages = $

我正试图让一个好的分页器工作,但我在让即将到来的/中间的数字正常工作方面遇到了困难

目标是显示结果集的第一个和最后5个页面,而不管您在哪个页面上,但这些第一个和最后5个页面只能在有足够的页面允许的情况下显示

分页将如下所示:>

只有几页:>

如何避免这种情况?:>

到目前为止,我的代码是:

function pagination_links($page, $num_rows, $results_per_page, $each_direction = 3) 
{ 
$total_pages = $num_rows ? ceil($num_rows / $results_per_page) : 1 ; 
if($total_pages < 2) 
{ 
    return null; 
} 
$page = ((is_numeric($page)) && ($page >= 1) && ($page <= $total_pages)) ? (int)$page : 1 ; 
$output = null; 
if($page > 1) 
{ 
    $output .= '<div class="pageBtn"><<</div>' ; 
}
else
{
    $output .= '<div class="pageBtnDis"><<</div>' ;
}

for($i=1;$i<$total_pages;$i++)
{
     if($page != $i) 
    { 
        $output .= '<div class="pageBtn">' . $i . '</div>' ; 
    } 
    else 
    { 
        $output .= '<div class="pageBtnSet">' . $i . '</div>' ;
    }
    if($i > 4)
    {
        break ;
    }
}

for($i = $page - $each_direction; $i <= $page + $each_direction; $i++) 
{ 
    if(($i > 5) && ($i <= $total_pages-5)) 
    { 
        if($page != $i) 
        { 
            $output .= '<div class="pageBtn">' . $i . '</div>' ; 
        } 
        else 
        { 
            $output .= '<div class="pageBtnSet">' . $i . '</div>' ;
        } 
    } 
}

for($i = $total_pages-5;$i<$total_pages;$i++) {
    if($page != $i) 
        { 
            $output .= '<div class="pageBtn">' . $i . '</div>' ; 
        } 
        else 
        { 
            $output .= '<div class="pageBtnSet">' . $i . '</div>' ;
        } 
}
if($page < $total_pages) 
{ 
    $output .= '<div class="pageBtn">>></div>' ; 
}
else
{
    $output .= '<div class="pageBtnDis">>></div>' ;
}
return $output ;
函数分页链接($page、$num\u rows、$results\u per\u page、$each\u direction=3)
{ 
$total_pages=$num_rows?ceil($num_rows/$results_per_pages):1;
如果($total_pages<2)
{ 
返回null;
} 
$page=((是数字($page))&&($page>=1)&&($page 1)
{ 
$output.='';
}
其他的
{
$output.='>>';
}
返回$output;

}

我认为当前最好的解决方案是使用。它极大地简化了分页标记的创建和样式设置。

我认为当前最好的解决方案是使用。它极大地简化了分页标记的创建和样式设置。

高度可定制,我在这方面取得了很大的成功。

这是一个高度复杂的解决方案stomizable,我在这方面取得了很多成功。

谢谢,正是我在寻找的!谢谢,正是我在寻找的!PEAR是一个失败的事业。它臃肿且充满依赖性。正是面向对象代码不应该的。严肃的程序员不使用PEAR,因为PEAR多年来一直在发展。你可以编写自己的寻呼机如果你知道如何编写代码,只需30分钟。提示:寻呼机永远不应该生成HTML代码。它应该将计算结果放入数组中,让另一个类生成HTML。这是一个很好的起点。@JGEstiot是的,没有人再使用PEAR了。这是一个三年前的答案-现在我建议有人使用fram像内置分页功能的Laravel这样的工作。我不会碰Laravel。对于99%的项目来说,这完全是一种过火的行为。@JGEstiot我完全不同意,但还有很多其他框架可供选择。PEAR是一个失败的原因。它臃肿且充满依赖性。这正是面向对象的代码不应该是的。严肃的程序员不使用PEA多年来一直呈梨形的寻呼机。如果你知道如何编写代码,你可以在30分钟内编写自己的寻呼机。提示:寻呼机不应该生成HTML代码。它应该将计算结果放入数组,让另一个类生成HTML。这是一个很好的起点。@JGEstiot是的,没有人再使用pear了。T这是一个三年前的答案——现在我建议有人使用像Laravel这样内置分页的框架。我不会碰Laravel。对于99%的项目来说,这是一个完全过火的问题。@JGEstiot我完全不同意,但还有很多其他框架可供选择。