PHP实现简单数字分页效果
我们平时在开发中,经常需要用到分页,在项目中要用到分页。分页功能是经常使用的一个功能,下面我们就来简单分享个数字的分页效果
学习要点:
1.LIMIT 用法
2.各种参数
3.超链接调用
第一:先在文件中设置数字分页模块;我的文件是(blog.php)代码如下:
- //分页模块
- $_page = $_GET['page'];
- $_pagesize = 10;
- $_pagenum = ($_page - 1) * $_pagesize;
- //首页要得到所有的数据总和
- $_num=mysql_num_rows(_query("SELECT tg_id FROM tg_user"));
- $_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");
设置分页循环的效果
- <div >
- <ul>
- <?php for($i=0;$i<$_pageabsolute;$i++){
- if ($_page == ($i+1)) {
- echo '<li><a href="blog.php?page='.($i+1).'" class="selected">'.($i+1).'</a></li>';
- }else{
- echo '<li><a href="blog.php?page='.($i+1).'">'.($i+1).'</li>';
- }
- } ?>
- </ul>
- </div>
相对应的CSS
- #page_num {
- height:20px;
- clear:both;
- padding:10px 0;
- position:relative;
- }
- #page_num ul {
- position:absolute;
- right:30px;
- height:20px;
- }
- #page_num ul li {
- float:left;
- width:26px;
- height:20px;
- }
- #page_num ul li a {
- display:block;
- width:20px;
- height:20px;
- line-height:20px;
- border:1px solid #333;
- text-align:center;
- text-decoration:none;
- }
- #page_num ul li a:hover,#page_num ul li a.selected {
- background:#666;
- font-weight:bold;
- color:#fff;
- }
在其中可能会由于编码出现容错误,解决的方法是
- // 分页模块
- if (isset ( $_GET ['page'] )) {
- // 在数据不再数据范围内出错的解决方法
- $_page = $_GET['page'];
- // 是否为空,是否小于0,是否不是数字。//如果其中有一个是,那么就=1
- if (emptyempty ( $_page )||$_page < 0 || !is_numeric( $_page )) {
- $_page = 1;
- } else {
- $_page = intval ( $_page ); // 如果是数字,但是小数,那么就$_page = intval($_page);转换成整数
- }
- } else {
- $_page = 1;
- }
- $_pagesize = 10;
- $_num = _num_rows( _query ( "SELECT tg_id FROM tg_user" ) );
- if ($_num==0) {
- $_pageabsolute=1;
- }else{
- $_pageabsolute=ceil($_num/$_pagesize);
- }
- //当页码大于总页码的时候,就会返回到总页码的最后一页
- if ($_page>$_pageabsolute) {
- $_page=$_pageabsolute;
- }
- $_pagenum = ($_page - 1) * $_pagesize;