- <?php
- /*
- 在这个分页的类中共有三个类函数,第一个函数的作用上面说过,第二个函数caculate主要是计算记录集的总条数,分多少页显示,同时把这些结果赋值给成员变量,以供下一个函数使用这些值。第三个函数,url就是实现记录集分页显示的代码。这里说一下,分页的算法,主要是用到这一个SQL语句:select * from table_name limit $start,$pageper;其中,$start是查询的起始位置,$pageper是每一页要显示的条数。
- */
- include_once("db.inc.php");
- class FENYE extends DBSQL{
- public $count_1; //返回结果记录集的总条数
- private $pageper=3; //每页显示的记录集条数
- public $pc; //显示的总页数
- private $sql="select * from students";
- public $offset; //当前的页码数
- public function __constract(){
- parent::__constract(); //调用父类里的方法链接数据库
- }
- public function caculate($sql=""){
- $sql=$this->sql;
- $result=mysql_query($sql) or die (mysql_error());
- $count=mysql_num_rows($result);
- $this->count_1=$count;
- $pc=intval($count/$this->pageper)+1;
- $this->pc=$pc;
- }
- public function url($targetUrl){
- $pagesize=$this->pageper ; //每页显示记录
- $page=isset($_GET['page'])?intval($_GET['page']):1;//获取当前页
- $sql="select * from students limit ".($page-1)*$pagesize.",$pagesize";
- //echo $sql ;exit;
- $results=mysql_query($sql) or die (mysql_error());
- while ($row = mysql_fetch_array($results)){
- for($i=0;$i<count($row);$i++)
- echo $row[$i]." ";
- echo "<br>";
- }
- $offset=($page-1)*$pagesize;
- $prepage=$page-1; //上一页
- $nextpage=$page+1; //下一页
- $pagenav="共".$this->count_1." 条记录每页显示$pagesize 条记录,共".$this->pc." 页,当前第$page 页";
- if($page==1){
- $strpage="【第一页】【上一页】<a href='$targetUrl?page=$nextpage'>【下一页】</a><a href='$targetUrl?page=$pc'>【最后一页】</a>";
- }
- if($page>1&&$page<=$this->pc){
- $strpage="<a href='$targetUrl?page=1'>【第一页】</a><a href='$targetUrl?page=$prepage'>【上一页】</a><a href='$targetUrl?page=$nextpage'>【下一页】</a><a href='$targetUrl?page=$pc'>【最后一页】</a>";
- }
- if($page==$this->pc){
- $strpage="<a href='$targetUrl?page=1'>【第一页】</a><a href='$targetUrl?page=$prepage'>【上一页】</a>【下一页】【最后一页】";
- }
- $strpage="$pagenav<br>$strpage";
- echo $strpage;
- }
- }
- /*
- 小函数注解:
- intval: 取得整数值;
- count: 计算一个数组的元素个数;
- expression_1?expression_2:expression_3;:如果第一个表达式为值,该函数的返回值就是第二个表达式的值,否则函数的返回值为第三个表达式的值。
- 为了程序的代码的安全起见,可是把类的成员变量的类型设置为private。*/
- ?>
- //该片段来自于http://www.codesnippet.cn/detail/181220121046.html
来源: http://www.codesnippet.cn/detail/181220121046.html