ホームページ >バックエンド開発 >PHPチュートリアル >特定の php+mysql ページングを提供してください - オンラインで検索しないでください
1. aページからbページをクリックしてページング表示します
2. ページング表示用のコード
3. ホームページ、前のページ 1 2 3 4 5 次のページ、最後のページの機能があります
4. クリックしてページを表示しますページをめくった後の内容は正常に表示されます データベースからのデータは前のページと次のページで正常に表示できます(ページaから渡されたパラメータは失われません)、
class page{ private $_page_num;//总页数 private $_page_size=10;//每页条数 private $_page_url;//url链接 private $_limit;//limit1 private $_page_total;//总分页数 private $_page;//分页所传分页值 private $_list_size=10;//这为第二种分页方法显示条数 private $_page_sort=3;//分页两边距离 public function __construct($_total,$_pagesize,$_list_size){ $this->_page_size=$_pagesize; $this->_page_total=$_total; $this->_list_size = $_list_size; $this->_page_num = round($this->_page_total/$this->_page_size); $this->_page=$this->getnum(); $this->_limit="limit".$this->_page*$this->_page_size.",".$this->_page_total=$_total; $this->_page_url=$this->seturl(); } /** * 获取当前页数 * Enter description here ... */ private function getnum(){ if(isset($_GET['page'])){ if(is_numeric($_GET['page'])){ if($_GET['page']>0){ if(ceil($_GET['page'])>=1 && ceil($_GET['page'])<=$this->_page_num){ return ceil($_GET['page']); }elseif(ceil($_GET['page'])>$this->_page_num){ return $this->_page_num; } }else{ return 1; } }else{ return 1; } }else{ return 1; } } /** * 转换链接 * Enter description here ... */ private function seturl(){ $_url=$_SERVER['REQUEST_URI'];//获取请求地址 $_par=parse_url($_url);//解析url if(isset($_par['query'])){//判断是否存在aa=bb这种格式 $_url=parse_str($_par['query'],$_query);//重构url unset($_query['page']); $_url=$_par['path'].'?'.http_build_query($_query); }else{ $_url=$_url.'?'; } return $_url; } public function limit(){ return $this->_limit; } public function pagenum(){ return $this->_page_num; } /* public function page(){ return $this->_page; } public function pageurl(){ return $this->_page_url; } */ private function first(){ return "<a href=".$this->_page_url."&page=1>首页</a>"; } private function end(){ return "<a href=".$this->_page_url."&page=".$this->_page_num.">尾页</a>"; } private function prev(){ if($this->_page>1){ return "<a href=".$this->_page_url."&page=".($this->_page-1).">上一页</a>"; }else{ return '上一页'; } } public function next(){ if($this->_page<$this->_page_num){ return "<a href=".$this->_page_url."&page=".($this->_page+1).">下一页</a>"; }else{ return '下一页'; } } private function pagelist_1(){ $_page=''; for($i=1;$i<=$this->_page_num;$i++){ $_page.="<a href=".$this->_page_url."&page=".$i.">".$i."</a>"; } return $_page; } private function pagelist_2(){ $_page=''; $_page_start=floor($this->_page/$this->_list_size); $usenum=$this->check(($_page_start*$this->_list_size+10),$this->_page_num); for($i=$_page_start*$this->_list_size+1;$i<=$usenum;$i++){ $_page.="<a href=".$this->_page_url."&page=".$i.">".$i."</a>"; } return $_page; } private function pagelist_3(){ $page=''; for($i=$this->_page-$this->_page_sort;$i<=$this->_page-1;$i++){ if($i<1)continue; $page.="<a href=".$this->_page_url."&page=".$i.">".$i."</a>".' '; } $page.="<a href=".$this->_page_url."&page=".$this->_page.">".$this->_page."</a>".' '; for($i=$this->_page+1;$i<=$this->_page+$this->_page_sort;$i++){ if($i>$this->_page_num)break; $page.="<a href=".$this->_page_url."&page=".$i.">".$i."</a>".' '; } return $page; } /** * 没有修正的分页列表 * Enter description here ... */ private function pagelist_4(){ $page=''; for($i=$this->_page-$this->_page_sort;$i<=$this->_page-1;$i++){ if($i<1)continue; $page.="<a href=".$this->_page_url."&page=".$i.">".$i."</a>".' '; } $page.="<a href=".$this->_page_url."&page=".$this->_page.">".$this->_page."</a>".' '; for($i=$this->_page+1;$i<=$this->_page+$this->_page_sort;$i++){ if($i>$this->_page_num)break; $page.="<a href=".$this->_page_url."&page=".$i.">".$i."</a>".' '; } //+1和-1为了排除上一页显示的值,不然会重复 if($this->_page>($this->_page_sort+1) && $this->_page<($this->_page_num-$this->_page_sort)){ $page="<a href=".$this->_page_url."&page=".($this->_page-$this->_page_sort*2-1).">...</a>".$page."<a href=".$this->_page_url."&page=".($this->_page+$this->_page_sort*2+1).">...</a>"; } return $page; } private function check($num1,$num2){ if($num1>$num2){ return $num2; }else{ return $num1; } } public function showpage($_type){ $_page=''; $_page.=$this->first();//首页 switch($_type){ case '1': $_page.=$this->pagelist_1();//原始页面列表 break; case '2': $_page.=$this->pagelist_2();//原始页面列表 break; case '3': $_page.=$this->pagelist_3();//原始页面列表 break; case '4': $_page.=$this->pagelist_4();//原始页面列表 break; default: $_page.=$this->pagelist_3();//默认原始页面列表 } $_page.=$this->end();//尾页 $_page.=$this->prev();//上一页 $_page.=$this->next();//下一页 return $_page; }}// $page = new page(220,10,10);// echo $page->showpage('4');
現在の場所 | 家電カテゴリ
コンテンツ 1
コンテンツ 2
コンテンツ 3
合計 2 ページ ページ 1 合計 5 レコード 次のページ 最後のページ
次のページをクリックすると、次のページのみが表示されます:
現在の場所 ホーム | 合計 8 ページ ページ 2 合計 30 レコードページ 次のページ 最後のページ
よくわかりませんが、他の方法を見つけました