PHP实现简单数字分页效果
学习要点:
1.LIMIT用法
2.各种参数
3.超链接调用
第一:先在文件中设置数字分页模块;我的文件是(blog.php)
//分页模块 $_page=$_GET['page']; $_pagesize=10; $_pagenum=($_page-1)*$_pagesize; //首页要得到所有的数据总和 $_num=mysql_num_rows(_query("SELECTtg_idFROMtg_user")); $_pageabsolute=$_num/$_pagesize;
要注意的是在数据库中取集的时候
//我们必须每次重新读取结果集,而不是从新去执行SQL语句。 $_result=_query("SELECTtg_username,tg_sex,tg_faceFROMtg_userORDERBYtg_reg_timeDESCLIMIT$_pagenum,$_pagesize");
设置分页循环的效果
<divid="page_num"> <ul> <?phpfor($i=0;$i<$_pageabsolute;$i++){ if($_page==($i+1)){ echo'<li><ahref="blog.php?page='.($i+1).'"class="selected">'.($i+1).'</a></li>'; }else{ echo'<li><ahref="blog.php?page='.($i+1).'">'.($i+1).'</li>'; } }?> </ul> </div>
相对应的CSS
#page_num{ height:20px; clear:both; padding:10px0; position:relative; } #page_numul{ position:absolute; right:30px; height:20px; } #page_numulli{ float:left; width:26px; height:20px; } #page_numullia{ display:block; width:20px; height:20px; line-height:20px; border:1pxsolid#333; text-align:center; text-decoration:none; } #page_numullia:hover,#page_numullia.selected{ background:#666; font-weight:bold; color:#fff; }
在其中可能会由于编码出现容错误,解决的方法是
//分页模块 if(isset($_GET['page'])){ //在数据不再数据范围内出错的解决方法 $_page=$_GET['page']; //是否为空,是否小于0,是否不是数字。//如果其中有一个是,那么就=1 if(empty($_page)||$_page<0||!is_numeric($_page)){ $_page=1; }else{ $_page=intval($_page);//如果是数字,但是小数,那么就$_page=intval($_page);转换成整数 } }else{ $_page=1; } $_pagesize=10; $_num=_num_rows(_query("SELECTtg_idFROMtg_user")); if($_num==0){ $_pageabsolute=1; }else{ $_pageabsolute=ceil($_num/$_pagesize); } //当页码大于总页码的时候,就会返回到总页码的最后一页 if($_page>$_pageabsolute){ $_page=$_pageabsolute; } $_pagenum=($_page-1)*$_pagesize;