PHP实现简单数字分页效果

我们平时在开发中,经常需要用到分页,在项目中要用到分页。分页功能是经常使用的一个功能,下面我们就来简单分享个数字的分页效果

学习要点:

1.LIMIT 用法

2.各种参数

3.超链接调用

第一:先在文件中设置数字分页模块;我的文件是(blog.php)代码如下:

  1. //分页模块
  2. $_page = $_GET['page'];
  3. $_pagesize = 10;
  4. $_pagenum = ($_page - 1) * $_pagesize;
  5. //首页要得到所有的数据总和
  6. $_num=mysql_num_rows(_query("SELECT tg_id FROM tg_user"));
  7. $_pageabsolute=$_num / $_pagesize;

要注意的是在数据库中取集的时候,我们必须每次重新读取结果集,而不是从新去执行SQL语句。

$_result = _query("SELECT tg_username,tg_sex,tg_face FROM tg_user ORDER BY tg_reg_time DESC LIMIT $_pagenum,$_pagesize");

设置分页循环的效果

  1. <div >
  2. <ul>
  3. <?php for($i=0;$i<$_pageabsolute;$i++){
  4. if ($_page == ($i+1)) {
  5. echo '<li><a href="blog.php?page='.($i+1).'" class="selected">'.($i+1).'</a></li>';
  6. }else{
  7. echo '<li><a href="blog.php?page='.($i+1).'">'.($i+1).'</li>';
  8. }
  9. } ?>
  10. </ul>
  11. </div>

相对应的CSS

  1. #page_num {
  2. height:20px;
  3. clear:both;
  4. padding:10px 0;
  5. position:relative;
  6. }
  7. #page_num ul {
  8. position:absolute;
  9. right:30px;
  10. height:20px;
  11. }
  12. #page_num ul li {
  13. float:left;
  14. width:26px;
  15. height:20px;
  16. }
  17. #page_num ul li a {
  18. display:block;
  19. width:20px;
  20. height:20px;
  21. line-height:20px;
  22. border:1px solid #333;
  23. text-align:center;
  24. text-decoration:none;
  25. }
  26. #page_num ul li a:hover,#page_num ul li a.selected {
  27. background:#666;
  28. font-weight:bold;
  29. color:#fff;
  30. }

在其中可能会由于编码出现容错误,解决的方法是

  1. // 分页模块
  2. if (isset ( $_GET ['page'] )) {
  3. // 在数据不再数据范围内出错的解决方法
  4. $_page = $_GET['page'];
  5. // 是否为空,是否小于0,是否不是数字。//如果其中有一个是,那么就=1
  6. if (emptyempty ( $_page )||$_page < 0 || !is_numeric( $_page )) {
  7. $_page = 1;
  8. } else {
  9. $_page = intval ( $_page ); // 如果是数字,但是小数,那么就$_page = intval($_page);转换成整数
  10. }
  11. } else {
  12. $_page = 1;
  13. }
  14. $_pagesize = 10;
  15. $_num = _num_rows( _query ( "SELECT tg_id FROM tg_user" ) );
  16. if ($_num==0) {
  17. $_pageabsolute=1;
  18. }else{
  19. $_pageabsolute=ceil($_num/$_pagesize);
  20. }
  21. //当页码大于总页码的时候,就会返回到总页码的最后一页
  22. if ($_page>$_pageabsolute) {
  23. $_page=$_pageabsolute;
  24. }
  25. $_pagenum = ($_page - 1) * $_pagesize;