Maison >développement back-end >tutoriel php >不查询数据库如何实现分页?

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

WBOY
WBOYoriginal
2016-06-06 20:09:581146parcourir

初学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>

大概就是这样的...

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn