PHP语言之MySQL操作

第4关: PHP实现分页显示数据

<?php
/**
 * 分页链接生成函数
 * $page  URL传递的page值
 * $max_page  最大页码值
 * $show_page_num 页面中显示多少页码
 */
function makePageHtml($page, $max_page, $show_page_num = 5) {


    //将首页的链接存入字符串$page_html中
    /*******Begin********/
    $page_html='<a href="?page=1">首页</a>&nbsp;';
    
    /*******end*********/

    //根据当前页码$page计算出它的所在分组,以及需要显示的第一页$i和最后一页$max_i
     /*******Begin********/
   $page_grep=ceil($page/$show_page_num);
   $i=$show_page_num*($page_grep-1)+1;
   $max=$page_grep*$show_page_num;
   $max_i=($max<=$max_page)?$max:$max_page;
    
    /*******end*********/

    for ($i; $i <= $max_i; $i++) {
        //判断是否有上一个页面分组,若有则向$page_html中添加"<"的链接
      /*******Begin********/
  if(($i+$show_page_num-1) % $show_page_num==0 && $i>1){
      $page_html .='<a href="?page=' . ($i-1) . '"&lt;</a>&nbsp;';
  }
    
    /*******end*********/

        //判断是否为当前选中页,并添加入$page_html。这是因为当前选择页的链接与其他页的链接不同
      /*******Begin********/
    if($i==$page){
        $page_html .='<a class = "curl" href="?page=' . $i . '">' . $i . '</a>&nbsp;';
    }else{
        $page_html .='<a href="?page=' . $i . '">' . $i . '</a>&nbsp;';
    }
    
    /*******end*********/

        //判断是否有下一页,若有则向$page_html中添加">"的链接
    /*******Begin********/
   if($i % $show_page_num==0 && $i < $max_page){
       $page_html .='<a href="?page=' . ($i+1) . '">&gt;</a>&nbsp;';
   }
    
    /*******end*********/


    }
    //将尾页的链接存入字符串$page_html中
    /*******Begin********/
   $page_html .='<a href="?page=' . $max_page . '">尾页</a>&nbsp;';
  
    /*******end*********/
    //返回显示分页链接的字符串
    return $page_html;
}
require "showList.php";

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现分页显示的主要思路是对数据库查询结果进行分页处理,只返回指定页面的数据。一般来说,分页显示需要考虑以下几个键点: 1. 每页显示的数据条目数:可以根据实际需求设置每页显示的条目数,一般为10、20、50、100等等。 2. 当前页数:需要记录当前页数,以便在页面中显示当前页数和提供翻页操作。 3. 总页数:需要计算出总页数,以便在页面中提供翻页操作。 4. 查询结果偏移量:需要计算出当前页面对应的查询结果偏移量,以便在数据库中查询指定页数的数据。 下面是一个简单的PHP实现分页显示的示例代码: ```php $page_size = 20; // 每页显示20条数据 $page_num = isset($_GET['page']) ? $_GET['page'] : 1; // 获取当前页数,默认为第一页 // 查询总数据条目数 $total_count = $pdo->query('SELECT count(*) FROM table')->fetchColumn(); // 计算总页数 $total_page = ceil($total_count / $page_size); // 计算查询结果偏移量 $offset = ($page_num - 1) * $page_size; // 查询指定页数的数据 $data = $pdo->query("SELECT * FROM table LIMIT $page_size OFFSET $offset")->fetchAll(); // 在页面中显示分页信息和数据 echo "当前第{$page_num}页,共{$total_page}页\n"; foreach ($data as $item) { echo $item['name'] . "\n"; } // 显示翻页操作 echo '<a href="?page=1">首页</a> '; if ($page_num > 1) { echo '<a href="?page='.($page_num-1).'">上一页</a> '; } if ($page_num < $total_page) { echo '<a href="?page='.($page_num+1).'">下一页</a> '; } echo '<a href="?page='.$total_page.'">尾页</a>'; ``` 以上代码中,我们首先设置了每页显示20条数据,然后根据当前页数计算出查询结果偏移量,再查询指定页数的数据。最后在页面中显示分页信息和数据,并提供了翻页操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六弦绿漪。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值