首頁 >後端開發 >php教程 >求个具体的php+mysql分页-不要网上搜的

求个具体的php+mysql分页-不要网上搜的

WBOY
WBOY原創
2016-06-23 14:05:51824瀏覽

一、从a页点击在b页进行分页显示
二、分页显示的代码
三、有 首页 上页 1 2 3 4 5 下页 末页的功能
四、翻页后能 正常显示内容就是点击上页下页能正常显示数据库的数据(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