- <?php
- class page extends db{
- public function getPage($sql, $page, $size){
- $this->page = $page;
- $this->pageAll = ceil($this->numrows($sql) / $size);
- return $this->fetchAll($sql.' LIMIT '.($this->page - 1) * $size.' , '.$size);
- }
- public function setPage($uri, $offset){
- if($this->page < 2){
- return $this->leftPage($uri, $this->page, $offset);
- }elseif($this->page > 1 && $this->page < $this->pageAll){
- return $this->middlePage($uri, $this->page, $offset);
- }elseif($this->page > $this->pageAll - 1){
- return $this->rightPage($uri, $this->page, $offset);
- }
- }
- private function leftPage($uri, $page, $offset){
- $first = '';
- $last = '<a href="'.$uri.$this->pageAll.'">>></a>';
- $current = '<a class="current">'.$page.'</a>';
- $prev = ''; $next = '';
- for($i = 1; $i < $offset; $i++){
- $nextNum = $page + $i;
- $next .= '<a href="'.$uri.$nextNum.'">'.$nextNum.'</a>';
- }
- $next .= '<a href="'.$uri.($page + 1).'">></a>';
- return '<div class="page">'.$first.$prev.$current.$next.$last.'</div>';
- }
- private function middlePage($uri, $page, $offset){
- $diff = $this->pageAll - $page;
- $first = '<a href="'.$uri.'1"><<</a>';
- $last = '<a href="'.$uri.$this->pageAll.'">>></a>';
- $current = '<a class="current">'.$page.'</a>';
- $prev = ''; $next = '';
- if($diff < ceil($offset/2)){
- for($i = 1; $i < $offset-$diff; $i++){
- $prevNum = $page - $i;
- $prev = '<a href="'.$uri.$prevNum.'">'.$prevNum.'</a>'.$prev;
- }
- for($i = 1; $i <= $diff; $i++){
- $nextNum = $page + $i;
- $next .= '<a href="'.$uri.$nextNum.'">'.$nextNum.'</a>';
- }
- }elseif($page > ceil($offset/2)){
- for($i = 1; $i < ceil($offset/2); $i++){
- $prevNum = $page - $i;
- $prev = '<a href="'.$uri.$prevNum.'">'.$prevNum.'</a>'.$prev;
- $nextNum = $page + $i;
- $next .= '<a href="'.$uri.$nextNum.'">'.$nextNum.'</a>';
- }
- }elseif($page < $offset){
- for($i = 1; $i < $page; $i++){
- $prevNum = $page - $i;
- $prev = '<a href="'.$uri.$prevNum.'">'.$prevNum.'</a>'.$prev;
- }
- for($i = 1; $i <= $offset - $page; $i++){
- $nextNum = $page + $i;
- $next .= '<a href="'.$uri.$nextNum.'">'.$nextNum.'</a>';
- }
- }
- $prev = '<a href="'.$uri.($page - 1).'"><</a>'.$prev;
- $next .= '<a href="'.$uri.($page + 1).'">></a>';
- return '<div class="page">'.$first.$prev.$current.$next.$last.'</div>';
- }
- private function rightPage($uri, $page, $offset){
- $first = '<a href="'.$uri.'1"><<</a>';
- $last = '';
- $current = '<a class="current">'.$page.'</a>';
- $prev = ''; $next = '';
- for($i = 1; $i < $offset; $i++){
- $prevNum = $page - $i;
- $prev = '<a href="'.$uri.$prevNum.'">'.$prevNum.'</a>'.$prev;
- }
- $prev = '<a href="'.$uri.($page - 1).'"><</a>'.$prev;
- return '<div class="page">'.$first.$prev.$current.$next.$last.'</div>';
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/271120137546.html
来源: http://www.codesnippet.cn/detail/271120137546.html