Home >Backend Development >PHP Tutorial >不查询数据库如何实现分页?
初学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>
大概就是这样的...