php分页功能实现
2013-11-24 11:55
405 查看
上星期工作中,遇到要处理一段分页的代码!以前是写的很熟练的,可能是懒散的太久了!感觉忘的差不多了。
有的知识就是太久不用也会忘记的很快啊!所以经常复习一下以前的知识也是很重要的。所以特地整理出一下分页代码!
效果如上图;在发表框点一下弹出一个框,首先判断用户是否登录,没有登录就弹出登录框,已登录就弹出输入框,输入留言内容,姓名和手机号。
当你输入好内容后会在下面显示你的留言内容,前三个为用户最新的留言排序,从第四个起按点赞的数量进行排序。
这一段为php的分页代码。临时在本地服务器上测试的,效果图为简单的这样!
有的知识就是太久不用也会忘记的很快啊!所以经常复习一下以前的知识也是很重要的。所以特地整理出一下分页代码!
效果如上图;在发表框点一下弹出一个框,首先判断用户是否登录,没有登录就弹出登录框,已登录就弹出输入框,输入留言内容,姓名和手机号。
当你输入好内容后会在下面显示你的留言内容,前三个为用户最新的留言排序,从第四个起按点赞的数量进行排序。
<!--视图层--> <?php $pageIndex = isset($_GET['p'])?$_GET['p']:0; echo "<script type=\"text/javascript\">var pageindex=".$pageIndex." </script>"; ?> <script type="text/javascript" src="/jquery.js"></script> <script type="text/javascript"> function loadMore(){ pageindex = pageindex || 0; $.ajax({ url:'http://www.*****.com/****/wishingwall?pageindex='+pageindex+'&callback=?', type:'GET', dataType:'jsonp', success:function(d){ if(d.code == 200){ if(d.font == ''){ return; }else{ var _html = ''; if (pageindex == 0) { var _len=0; if(d.font.length>3){ _len=4; }else{ _len=d.font.length; } for(var j = 0; j<_len; j++){ var _d = d.font; _html += '<div class="wallCenter" ><div class="items"><div class="style'+random(1, 5)+'">'; _html += '<div class="content">' +_d[j].content +'</div><span class="jianjue"></span><p class="author">'; _html += '<span class="zanImg" style="cursor:pointer"></span><span class="username">' +_d[j].username + '</span>'; _html += '<span class="zanColor">(<span id="'+_d[j].id+'" class="praisenumer'+_d[j].id+'">' +_d[j].praisenumer +'</span>赞)</span></p></div></div></div>'; } } if(d.data != '') { var _len=0; if(d.data.length>5 && pageindex==0){ _len=5; }else{ _len=8; } for(var j = 0; j<_len; j++){ var _s = d.data; _html += '<div class="wallCenter" ><div class="items"><div class="style'+random(1, 5)+'">'; _html += '<div class="content">' +_s[j].content +'</div><span class="jianjue"></span><p class="author">'; _html += '<span class="zanImg" style="cursor:pointer"></span><span class="username">' +_s[j].username + '</span>'; _html += '<span class="zanColor">(<span id="'+_s[j].id+'" class="praisenumer'+_s[j].id+'">' +_s[j].praisenumer +'</span>赞)</span></p></div></div></div>'; } } $(".wallWrap").text(''); <!--把留言写入--> $(".wallWrap").html(_html).masonry({itemSelector: '.wallCenter'}); var numberthis = parseInt(d.page) + 1; thisPage(d.count, numberthis); $(".zanImg").each(function(index, elm){ var $elm = $(elm); $elm.click(function(){ var thisid = $elm.parent('p').find('span.zanColor span').attr('id'); $.ajax({ url:'http://www.*****.com/****/addpraisenumer/'+thisid+'?callback=?', type:'GET', dataType:'jsonp', success:function(d){ if(d.code == 200){ $(".praisenumer"+thisid).text(d.praisenumer); } else { return; } } }); }) }) } }else{ return; } } }); } function thisPage(count, curPage) { count = count || 1; count = Number(count); <!--定义记录数--> curPage = curPage || 1; curPage = Number(curPage); <!--当前页--> var per = 8; per = Number(per); var showPages = 0; showPages = Number(showPages); var showEnd = 0; showEnd = Number(showEnd); if (count%per > 0) { <!--定义总的页数--> var pages = (parseInt(count/per) + 1); } else { var pages = parseInt(count/per); } var str = '<span class="loadPage">'+curPage+'/'+ pages +' 页</span>'; str += '<span class="totalPage"> 共 '+ pages +' 页</span>' if(curPage != 1){ str += '<span class="firstPage" data-page="1"><a href="http://*****.*****.com/thanksgiving?p=0#content">首页</a></span>' } if(curPage - 1 > 0){ str += '<span class="prevPage" data-page="'+(curPage-1)+'"><a href="http://*****.*****.com/thanksgiving?p='+ (curPage-2) +'#content">上一页</a></span>' } if(pages <= 5){ showPages = 1; showEnd = pages; }else if(pages - curPage >= 4){ showPages = curPage; showEnd = curPage+4; }else if(pages - curPage < 4){ showPages = pages - 4; showEnd = pages; } for(var i=showPages; i<=showEnd; i++){ if( i == curPage){ str += '<a class="page_trigger page_cur" data-page="'+i+'" onclick="javascript:;">'+ i +'</a>' }else{ str += '<a class="page_trigger" data-page="'+i+'" href="http://*****.*****.com/thanksgiving?p='+(i-1)+'#content">'+ i +'</a>' } } if(curPage + 1 <= pages){ str += '</span><span class="nextPage" data-page="'+(curPage+1)+'"><a href="http://*****.*****.com/thanksgiving?p='+ curPage +'#content">下一页</a></span>'; } if(curPage!=pages){ str += '<span class="lastPage" data-page="'+pages+'"><a href="http://*****.*****.com/thanksgiving?p='+ (pages-1) +'#content">尾页</a></span>'; } $('.page_box').eq(0).html(str);} </script>
<!--控制层--> <?php // 留言板显示 public function action_wishingwall() { header('Content-Type: application/x-javascript'); $callback = isset( $_GET[ 'callback' ] ) ? $_GET[ 'callback' ] : 'callback'; $pageIndex = Arr::get($_GET, 'pageindex', 0); $offset = 0; try { $font = DB::select('id', 'content', 'username', 'phone', 'userid', 'usernumber', 'praisenumer', 'modefied', 'created') ->from('tmp_***') ->order_by('praisenumer', 'desc') ->limit(3) ->fetch_all(); //根据点赞倒序查询 $list = ' ('; foreach($font as $v) { $list.= $v['id'].','; } $list.='0)'; $pageSize = 8; if($pageIndex == 0) { $pageSize = 8; } else { $offset = 8+($pageIndex-1)*8; } $rows = DB::select('id', 'content', 'username', 'phone', 'userid', 'usernumber', 'praisenumer', 'modefied', 'created') ->from('tmp_*****') ->where('id', DB::expr('not in'), DB::expr($list)) ->order_by('created', 'desc') ->limit($pageSize) ->offset($offset) ->fetch_all(); //根据时间倒序查询 $count = DB::select('id') ->from('tmp_*****') ->count_all(); $data = array( 'code' => 200, 'msg' => 'Success', 'page' => $pageIndex, 'count' => $count, 'font' => $font, 'data' => $rows, ); } catch (Exception $e) { $data = array( 'code' => 3000003, 'msg' => '查询异常', 'data' => $rows, ); } echo $callback.'('.json_encode($data).')'; exit; } // 点赞加 public function action_addpraisenumer($id) { header('Content-Type: application/x-javascript'); $callback = isset( $_GET[ 'callback' ] ) ? $_GET[ 'callback' ] : 'callback'; if (isset($id) && $id) { // 得到系统唯一session_id $session_id = session_id(); $result = array(1, time()); if (!$this->cacheFilter($session_id, "praise", $result, 10)) { $data = array( 'code' => 3000004, 'msg' => '10秒之内无法重复提交', ); } else { DB::update('tmp_*****') ->set(array('praisenumer' => DB::expr(' praisenumer+1 '))) ->where('id', '=', $id) ->execute(); $praisenumer = DB::select('praisenumer') ->from('tmp_*****') ->where('id', '=', $id) ->fetch_one(); $data = array( 'code' => 200, 'praisenumer' => $praisenumer, 'msg' => '成功', ); } } else { $data = array( 'code' => 3000003, 'msg' => '非法的操作', ); } echo $callback.'('.json_encode($data).')'; exit; } // 新增留言板 public function action_addwishingwall() { header('Content-Type: application/x-javascript'); $callback = isset( $_GET[ 'callback' ] ) ? $_GET[ 'callback' ] : 'callback'; $content = Arr::get($_GET, 'content', ''); $username = Arr::get($_GET, 'username', ''); $phone = Arr::get($_GET, 'phone', ''); if (empty($content)) { $data = array( 'code' => 3000001, 'msg' => '留言内容不能为空', ); } else { $data = array( 'content' => $content, 'username' => $username, 'phone' => $phone, 'praisenumer' => 0, 'modefied' => time(), 'created' => time() ); try { DB::insert('tmp_*****', array_keys($data)) ->values(array_values($data)) ->execute(); $data = array( 'code' => 200, 'msg' => '成功', ); } catch (Exception $e) { $data = array( 'code' => 3000002, 'msg' => '新增失败', ); } } echo $callback.'('.json_encode($data).')'; exit; } ?>
这一段为php的分页代码。临时在本地服务器上测试的,效果图为简单的这样!
<?php header('content-type:text/html;charset-gbk'); ?> <html> <head> <title>分页</title> </head> <body> <table border="1" width="500"> <tr> <td>编号 </td> <td>姓名</td> <td>年龄</td> <td>del</td> </tr> <?php $pagesize=5; //每页显示5条 $pageno=1; //当前页默认为1 if(!empty($_GET['pageno'])){ $pageno=$_GET['pageno']; } $offset=($pageno-1)*5; //偏移量 $link=mysql_connect('127.0.0.1','root',''); mysql_query('set names gbk'); mysql_select_db('test'); $sql="select * from t_user"; $rs=mysql_query($sql); //求出最总记录 $totalrows=mysql_num_rows($rs); //求出总页数 $pagetotal=ceil($totalrows/$pagesize); //求1到总页数范围的元素的数组 $rows=range(1,$pagetotal); $sql="select * from t_user limit {$offset},{$pagesize}"; $rs=mysql_query($sql); while($row=mysql_fetch_array($rs)){ echo "<tr>"; echo "<td>{$row['id']}</td>"; echo "<td>{$row['name']}</td>"; echo "<td>{$row['age']}</td>"; echo "<td>DEL</td>"; echo "</tr>"; } ?> <tr> <td colspan=4> <a href="page.php?pageno=1">首页</a> <?php if($pageno<=1){ echo "上一页"; }else{ ?> <a href="page.php?pageno=<?php echo$pageno-1;?>">上一页</a> <?php } ?> <?php foreach($rows as $p){ if($pageno == $p){ echo $p; }else{ echo "<a href='page.php?pageno={$p}'>{$p}</a>"; } } ?> <?php if($pageno>=$pagetotal){ echo "下一页"; }else{ ?> <a href="page.php?pageno=<?php echo$pageno+1;?>">下一页</a> <?php } ?> <a href="page.php?pageno=<?php echo $pagetotal;?>">尾页</a> </td> </tr> </table> </body> </html>
相关文章推荐
- php 实现分页功能
- php分页功能的实现,封装好的方法
- PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
- 原生PHP实现数据筛选以及简单分页功能
- 利用PHP访问数据库_实现分页功能与多条件查询功能的示例
- 基于PHP实现数据分页显示功能
- php实现分页显示功能
- PHP分页功能的实现
- PHP_实现分页功能
- PHP+MySQL实现留言板分页功能
- PHP分页功能实现
- php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
- php利用redis实现分页列表,新增,删除功能
- PHP实现的超长文本分页显示功能示例
- PHP ADODB实现分页功能简单示例
- php实现的后台表格分页功能示例
- 基于PHP实现数据分页显示功能
- PHP常用功能-php实现分页
- PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
- php对文本文件进行分页功能简单实现