search

Home  >  Q&A  >  body text

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

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

阿神阿神2896 days ago314

reply all(2)I'll reply

  • 天蓬老师

    天蓬老师2017-04-10 17:31:37

    https://segmentfault.com/q/1010000002464834
    模仿百度搜索结果的分页导航.

    <?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 <= 0){
            ?>
            <a href="page.php?p=1">最前</a><br />
            <a href="page.php?p=<?php echo $total_pagas; ?>">最后</a><br />
            <?php
            echo '<b>第1页(没有该页,统一显示第一页)</b><br />';
            $page = 1;
            if($total_pagas>=$page+4){
                for($i=$page+1;$i<=$page+4;$i++){
                    //echo $i;
                    ?>
                    <a href="page.php?p=<?php echo $i; ?>">第<?php echo $i; ?>页</a><br />
                    <?php
                }
                if($page!=$total_pagas){
                    ?>
                    <a href="page.php?p=<?php echo $page+1; ?>">下一页</a><br />
                    <?php
                }
            }else{
                for($i=$page+1;$i<=$total_pagas;$i++){
                    //echo $i;
                    ?>
                    <a href="page.php?p=<?php echo $i; ?>">第<?php echo $i; ?>页</a><br />
                    <?php
                }
                if($page!=$total_pagas){
                    ?>
                    <a href="page.php?p=<?php echo $page+1; ?>">下一页</a><br />
                    <?php
                }
            }
        }else{
            ?>
            <a href="page.php?p=1">最前</a><br />
            <a href="page.php?p=<?php echo $total_pagas; ?>">最后</a><br />
            <?php
            //前输出5页,后输出4页.
            if($page<=5){
                if($page!=1){
                    ?>
                    <a href="page.php?p=<?php echo $page-1; ?>">上一页</a><br />
                    <?php
                }
                for($i=1;$i<$page;$i++){
                    //echo $i;
                    ?>
                    <a href="page.php?p=<?php echo $i; ?>">第<?php echo $i; ?>页</a><br />
                    <?php
                }
            }else{
                if($page!=1){
                    ?>
                    <a href="page.php?p=<?php echo $page-1; ?>">上一页</a><br />
                    <?php
                }
                for($i=$page-5;$i<$page;$i++){
                    //echo $i;
                    ?>
                    <a href="page.php?p=<?php echo $i; ?>">第<?php echo $i; ?>页</a><br />
                    <?php
                }
            }
            echo '<b>第'.$page.'页(当前页)</b><br />';
            if($total_pagas>=$page+4){
                for($i=$page+1;$i<=$page+4;$i++){
                    //echo $i;
                    ?>
                    <a href="page.php?p=<?php echo $i; ?>">第<?php echo $i; ?>页</a><br />
                    <?php
                }
                if($page!=$total_pagas){
                    ?>
                    <a href="page.php?p=<?php echo $page+1; ?>">下一页</a><br />
                    <?php
                }
            }else{
                for($i=$page+1;$i<=$total_pagas;$i++){
                    //echo $i;
                    ?>
                    <a href="page.php?p=<?php echo $i; ?>">第<?php echo $i; ?>页</a><br />
                    <?php
                }
                if($page!=$total_pagas){
                    ?>
                    <a href="page.php?p=<?php echo $page+1; ?>">下一页</a><br />
                    <?php
                }
            }
        }
    }
    ?>

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 17:31:37

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

    大概就是这样的...

    reply
    0
  • Cancelreply