Home >Backend Development >PHP Tutorial >不查询数据库如何实现分页?

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

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

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

大概就是这样的...

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn