Heim >Backend-Entwicklung >PHP-Tutorial >不查询数据库如何实现分页?

不查询数据库如何实现分页?

WBOY
WBOYOriginal
2016-06-06 20:09:581146Durchsuche

初学php,用php调用api,有数据总数及每页的10条数据,该如何写分页,希望能给个demo或代码,谢谢各位老师~!

回复内容:

初学php,用php调用api,有数据总数及每页的10条数据,该如何写分页,希望能给个demo或代码,谢谢各位老师~!

https://segmentfault.com/q/1010000002464834
模仿百度搜索结果的分页导航.
不查询数据库如何实现分页?

<code><?php header('Content-Type: text/html;charset=utf-8');
$page = (!empty($_GET['p'])) ? intval($_GET['p']) : 1;
page($page);

function page($page=1, $page_size=10){
    $total_records = 505;
    $total_pagas = ceil($total_records/$page_size);
    echo '页数: '.$total_pagas.'<br />';
    if($total_pagas==0){
        echo '<b>查询结果为空</b><br>'; 
    }else if($page>$total_pagas || $page 
        <a href="page.php?p=1">最前</a><br>
        <a href="page.php?p=<?php%20echo%20%24total_pagas;%20?>">最后</a><br>
        <?php echo '<b>第1页(没有该页,统一显示第一页)<br>';
        $page = 1;
        if($total_pagas>=$page+4){
            for($i=$page+1;$i
                <a href="page.php?p=<?php%20echo%20%24i;%20?>">第<?php echo $i; ?>页</a><br>
                <?php }
            if($page!=$total_pagas){
                ?>
                <a href="page.php?p=<?php%20echo%20%24page+1;%20?>">下一页</a><br>
                <?php }
        }else{
            for($i=$page+1;$i<=$total_pagas;$i++){
                //echo $i;
                ?>
                <a href="page.php?p=<?php%20echo%20%24i;%20?>">第<?php echo $i; ?>页</a><br>
                <?php }
            if($page!=$total_pagas){
                ?>
                <a href="page.php?p=<?php%20echo%20%24page+1;%20?>">下一页</a><br>
                <?php }
        }
    }else{
        ?>
        <a href="page.php?p=1">最前</a><br>
        <a href="page.php?p=<?php%20echo%20%24total_pagas;%20?>">最后</a><br>
        <?php //前输出5页,后输出4页.
        if($page<=5){
            if($page!=1){
                ?>
                <a href="page.php?p=<?php%20echo%20%24page-1;%20?>">上一页</a><br>
                <?php }
            for($i=1;$i<$page;$i++){
                //echo $i;
                ?>
                <a href="page.php?p=<?php%20echo%20%24i;%20?>">第<?php echo $i; ?>页</a><br>
                <?php }
        }else{
            if($page!=1){
                ?>
                <a href="page.php?p=<?php%20echo%20%24page-1;%20?>">上一页</a><br>
                <?php }
            for($i=$page-5;$i<$page;$i++){
                //echo $i;
                ?>
                <a href="page.php?p=<?php%20echo%20%24i;%20?>">第<?php echo $i; ?>页</a><br>
                <?php }
        }
        echo '<b>第'.$page.'页(当前页)<br>';
        if($total_pagas>=$page+4){
            for($i=$page+1;$i
                <a href="page.php?p=<?php%20echo%20%24i;%20?>">第<?php echo $i; ?>页</a><br>
                <?php }
            if($page!=$total_pagas){
                ?>
                <a href="page.php?p=<?php%20echo%20%24page+1;%20?>">下一页</a><br>
                <?php }
        }else{
            for($i=$page+1;$i<=$total_pagas;$i++){
                //echo $i;
                ?>
                <a href="page.php?p=<?php%20echo%20%24i;%20?>">第<?php echo $i; ?>页</a><br>
                <?php }
            if($page!=$total_pagas){
                ?>
                <a href="page.php?p=<?php%20echo%20%24page+1;%20?>">下一页</a><br>
                <?php }
        }
    }
}
?></code>

<code><?php $page = $_GET['pages'];   //第几页
$page_num = 10;  设置每页显示条数
/*
不知道你的api都有什么参数,我模拟个通用的分页api函数吧;
通常传递两个参数就可以了  一个是起始位置,一个是显示条数
起始位置 = 第几页 * 每页显示条数   显示条数为你的自定义条数
*/
$page_mes = pagination($page * $page_num, $page_num); //pagination分页接口方法
foreach($page_mes as $key => $val){
    //分页数据显示
}
?></code>

大概就是这样的...

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn