ホームページ  >  記事  >  バックエンド開発  >  特定の php+mysql ページングを提供してください - オンラインで検索しないでください

特定の php+mysql ページングを提供してください - オンラインで検索しないでください

WBOY
WBOYオリジナル
2016-06-23 14:05:51762ブラウズ

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 レコードページ 次のページ 最後のページ

よくわかりませんが、他の方法を見つけました

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。