<?php 1.分页原理 所需数据: 总记录数: $records mysql_num_rows() 每页显示: $pagesize 人为定义10 总页数: $pages $records/$pagesize 当前页: $page 自己选择 2.分页的sql语句: SELECT * FROM news limit 0,10; //每次从数据库取10条数据 limit 语句的格式: $startnow:开始行号 $pagesize:每页显示多少条 limit $startnow,$pagesize 第1页 $page = 1 limit 0,10 从0条起取10条数据 第2页 $page = 2 limit 10,10 第3页 $page = 3 limit 20,10 ........ $startnow = ($page-1) * $pagesize; 3. //分页相关变量 $pagesize = 10; //每页取10条数据 //获取地址栏中用户点击后地址栏传递过来的page参数(第几页) if(empty($_REQUEST['page'])){ $page =1; $startnow =0; }else{ $page = (int)$_REQUEST['page']; $startnow = ($page-1) * $pagesize; } //构建sql语句 $sql = select * from vvt_news; //可以取出结果分页中再排序 //执行sql语句 $result = mysql_query($sql); //返回记录总数 $records = mysql_num_rows($result); //获取总页数 $pages = ceil($records/$pagesize); //构建分页的sql语句 $sql = "select * from vvt_news order addtime ASC,by id DESC LIMIT $startnow,$pagesize"; //执行sql语句 返回结果集 $result = mysql_query($sql); //结果集 可以取前端循环 $this->set('list', $result); //发送到前台 遍历循环 4.前台底部分页样式 <style type="text/css"> .pagelist{ height:40px; line-height:40px; } .pagelist a{ border:1px solid #ccc; background-color:#f0f0f0; padding:3px 8px; margin:0px; 3px; } .pagelist span { margin:3px 10px; } </style> <tr> <td colspan="8" align="center" class="pagelist"> <?php for ($i=1; $i<$pages ; $i++) { //如果是当前页则不加链接 if($i==$page){ echo "<span>$i</span>"; }else{ echo "<a href='magin.php?page=$i'>$i</a>"; } } ;?> </td> </tr> -->2 <tr> <td colspan="8" align="center" class="pagelist"> <?php $prev=$page-3; $next=$page+3; for ($i=$prev; $i<$next ; $i++) { //如果是当前页则不加链接 if($i==$page){ echo "<span>$i</span>"; }else{ echo "<a href='magin.php?page=$i'>$i</a>"; } } ;?> </td> </tr> -->3 <tr> <td colspan="8" align="center" class="pagelist"> <?php $prev=$page-3; $next=$page+3; if($prev<1){ $prev=1; } if($nest > $pages){ $next=$pages; } for ($i=$prev; $i<$next ; $i++) { //如果是当前页则不加链接 if($i==$page){ echo "<span>$i</span>"; }else{ echo "<a href='magin.php?page=$i'>$i</a>"; } } ;?> </td> </tr> -->4 判断当前页小于4,让分页始终保持7个