php mysql 分页显示代码
一款由网页提供的php mysql 分页显示代码,样式比较多,php分页类的核心代码如下:
- <?php
- /*
- php 分页类
- 只要实现分页。不与数据库教程连接。
- 如果是伪静态 只需修改84行以下的A标签即可 如 "<a href='index_".$i.".html'>".$i."</a>" (index_表示你的伪静态地址) 其他的A标签页是一样
- */
- /*
- 鄙人工作时间写了个简单实用的 php 分页类 现和大家分享。。
- QQ:348145486
- email: tzk_php@163.com
- 欢迎大家一起学习交流
- */
- class Page{
- public $page_size="20"; //每页显示的数据数目
- public $page_num; //总的数据数目
- public $page_url=""; //分页的当前URL
- public $pageval; //分页的当前页
- public $page_ys; //总的页数
- public $page_tf=false; //判断能否执行分页的值
- public $page;
- /**********初始化分页类************/
- function __construct($page_num,$page_size=""){
- $this->page_num=$page_num; //获取所有需要显示的数据数目
- if($page_size!=""){
- $this->page_size=$page_size; //获取每页显示数据数据
- }
- $this->page_url=$_SERVER['SCRIPT_NAME']; //获取当前的URL地址
- if($this->page_num>$this->page_size){ //判断是否能执行分页
- $this->page_ys=ceil($this->page_num/$this->page_size); //获取总的分页数
- $this->page_tf=true; //将分页权限复制以便下面再次判断
- }
- if(!emptyempty($_GET['page'])){ //只允许页码在分页数范围内
- if($_GET['page']>="1"){
- if($_GET['page']<=$this->page_ys){
- $this->pageval=$_GET['page'];
- }else{
- $this->pageval=$this->page_ys;
- }
- }else{
- $this->pageval="1";
- }
- }else{
- $this->pageval="1";
- }
- $this->page=($this->pageval-1)*$this->page_size; //查询数据库数据时的第一条数据
- }
- /************执行分页 返回分页按钮**********/
- function page_fy($val=""){
- if($this->page_tf==true){
- if($val==""){
- return $this->page_style_one();
- }else if ($val=="1"){
- return $this->page_style_two();
- }elseif ($val=="2"){
- return $this->page_style_three();
- }
- }
- }
- /**********分页按钮 样式一*********/
- function page_style_one(){
- if($this->pageval=="1"){
- $up="1";
- }else{
- $up=$this->pageval-1;
- }
- if($this->pageval>=$this->page_ys){
- $down=$this->page_ys;
- }else{
- $down=$this->pageval+1;
- }
- $one="<a href='".$this->page_url."?page=1'>首页</a>";
- $two="<a href='".$this->page_url."?page=".$up."'>上一页</a>";
- $three="<a href='".$this->page_url."?page=".$down."'>下一页</a>";
- $four="<a href='".$this->page_url."?page=".$this->page_ys."'>末页</a>";
- return $page_echo = $one.$two.$three.$four;
- }
- /***********分页按钮 样式二*************/
- function page_style_two(){ //下面这个呢,逻辑很复杂,思维很林乱,
- $page_echo="";
- if($this->pageval=="1"){
- $up="1";
- }else{
- $up=$this->pageval-1;
- }
- if($this->pageval>=$this->page_ys){
- $down=$this->page_ys;
- }else{
- $down=$this->pageval+1;
- }
- $two="<a href='".$this->page_url."?page=".$up."'>上一页</a>";
- $three="<a href='".$this->page_url."?page=".$down."'>下一页</a>";
- if($this->page_ys>"6"){
- if($this->pageval<=3){
- $i=2;
- $i_to=5;
- }elseif ($this->pageval>=($this->page_ys-2)){
- $i=$this->page_ys-4;
- $i_to=$this->page_ys-1;
- }else{
- $i=$this->pageval-2;
- $i_to=$this->pageval+2;
- }
- if($this->pageval>4){
- $page_one="...";
- }else{
- $page_one="";
- }
- if($this->pageval<($this->page_ys-3)){
- $page_two="...";
- }else{
- $page_two="";
- }
- for ($i;$i<=$i_to;$i++){
- $page_echo.="<a href='".$this->page_url."?page=".$i."'>".$i."</a>"; //如果是伪静态 只需修改A标签即可 如 "<a href='index_".$i.".html'>".$i."</a>" 其他的A标签页是一样
- }
- }else{
- for ($i=2;$i<=($this->page_ys-1);$i++){
- $page_echo.="<a href='".$this->page_url."?page=".$i."'>".$i."</a>";
- }
- }
- return $two."<a href='".$this->page_url."?page=1'>1</a>".$page_one.$page_echo.$page_two."<a href='".$this->page_url."?page=".$this->page_ys."'>".$this->page_ys."</a>".$three;
- }
- /*****************分页按钮 样式三 样式3大家可以写了。 *******************/
- function page_style_three(){
- return $this->page_style_two();
- }
- }
- ?>
PHP调用方法,代码如下:
- <style type="text/css">
- a{ color:#fff; text-decoration:none; padding:2px 5px; background-color:#09C; border:#F63 double 1px; margin:0 2px; font-size:14px;}
- a:hover{color:#f00; background-color:#CCC;}
- body{color:#999;}
- </style>
- <?php
- include 'p.php'; //载入分页类库
- $page=new Page('12345',"10"); //实例化类库 312 为显示的总条数 10 为每页显示的条数
- echo "样式二<br/>";
- echo "<br/>";
- echo "<br/>";
- echo $page->page_fy('1'); //使用分页样式
- echo "<br/>";echo "<br/>";echo "<br/>";echo "<br/>";
- echo "样式一<br/>";
- echo "<br/>";
- echo "<br/>";
- echo $page->page_fy(); //使用分页样式
- ?>