Home  >  Article  >  Backend Development  >  为什么我的PHP翻页不能翻到下一页呀求教

为什么我的PHP翻页不能翻到下一页呀求教

WBOY
WBOYOriginal
2016-06-23 13:23:271655browse

我定义了一个类来输出的  下面是类属性...最后是搜索页

include("script/conn.php");    class Page{        private $page;	//当前页码        private $page_num;	//数据总共分多少页显示        private $page_size;	//每页显示的数据条数        private $sql;	//查询的SQL语句        private $limit;	//查询语句后面的limit控制语句	private $total_Num;	//总记录数        public function __construct($sql='',$page_size=3){            $result = mysql_query($sql);            $this->total_Num = mysql_num_rows($result);            $this->page_size = $page_size;            $this->page_num = ceil($this->total_Num / $page_size);	//计算总页数            $this->sql = $sql;            $temp = (isset($_GET["page"]) ? $_GET["page"] : 1);	//获取当前页数            $this->setpage($temp);            $this->showpage();            $this->showFoot();        }        private function showpage(){            $this->limit = " LIMIT ".(($this->page - 1)* $this->page_size).",".$this->page_size;	//limit语句            $result = mysql_query($this->sql.$this->limit);            if (!$result){	//判断结果是否存在                if ($this->page_num > 0){	//如果不存在且页数大于0                    echo "查询出错"."<br>";                }else{                    echo "无数据"."<br>";                }                return;            }            $cols = mysql_num_rows($result);            while($row = mysql_fetch_array($result)){				echo "<img  src=".$row['Image']." / alt="为什么我的PHP翻页不能翻到下一页呀求教" >";				echo "<br/>";            }        }        private function setpage($page){                if($page < 1){                    $page = 1;                }                else if($page > $this->page_num){                    $page = $this->page_num;                }                    $this->page = $page;        }        private function showFoot(){			echo "<br/>";            echo "<a href='?page=1'>首页</a>丨";            echo "<a href='?page=".($this->page - 1)."'>上一页</a>丨";            echo "<a href='?page=".($this->page + 1)."'>下一页</a>丨";            echo "<a href='?page=".$this->page_num."'>尾页</a>丨";			echo "共有".$this->page_num."页丨";			echo "当前第".$this->page."页";        }  }

搜索页的我就给一部分吧。

 //search1.php是搜索页


 
下面是搜索页的PHP
include("c.php");//c.php是上面的PHP程序
$keyword=$_POST['search'];
$sql=mysql_query("select * from didian where name like '%$keyword%'");
$row=@mysql_fetch_object($sql);
if(!$row){
echo "您搜索的信息不存在,请使用类似的关键字进行检索!";
}
if($keyword=='北京'){
$pages = new Page('SELECT * FROM `image_beijing`', 3);
}
代码就这样。。如在类中显示就可以实现翻到下一页,但到搜索页就不能翻页了,只能看到首页,一翻页就什么信息都没,我想问下是什么问题呀。。。求教~~~感谢...


回复讨论(解决方案)

翻页时看看 $this->page 是否有变化

搜页后缀没变……如果在类里面执行就变……你有什么办法吗……

翻页时看看 $this->page 是否有变化

搜索页没变后缀~也没有后缀呢……类里面就变……你有什么办法解决吗?还是说要把2

我问的是 $this->page 是否有变化

我问的是 $this->page 是否有变化

这个……倒没注意~下课回宿舍试下……不过我估计没变化~

我问的是 $this->page 是否有变化

只能看到首页~也就是第一页……点下一页就数据全无~显示当前第一页……没变化……怎么解决?

那我要建议你重写了,把数据库操作部分从类中移去

class Page{  private $page;    //当前页码  private $page_num;    //数据总共分多少页显示  private $page_size;    //每页显示的数据条数  private $sql;    //查询的SQL语句  private $total_Num;    //总记录数  public $limit;    //查询语句后面的limit控制语句  public function __construct($total=100, $page_size=3){    $this->total_Num = $total;    $this->page_size = $page_size;    $this->page_num = ceil($this->total_Num / $page_size);    //计算总页数    $temp = (isset($_GET["page"]) ? $_GET["page"] : 1);    //获取当前页数    $this->setpage($temp);    $this->showpage();    $this->showFoot();  }  private function showpage(){    $this->limit = " LIMIT ".(($this->page - 1)* $this->page_size).",".$this->page_size;    //limit语句  }  private function setpage($page){    if($page < 1){      $page = 1;    }else if($page > $this->page_num){      $page = $this->page_num;    }    $this->page = $page;  }  private function showFoot(){     echo "<br/>";     echo "<a href='?page=1'>首页</a>丨";     echo "<a href='?page=".($this->page - 1)."'>上一页</a>丨";     echo "<a href='?page=".($this->page + 1)."'>下一页</a>丨";     echo "<a href='?page=".$this->page_num."'>尾页</a>丨";     echo "共有".$this->page_num."页丨";     echo "当前第".$this->page."页";  }}

那我要建议你重写了,把数据库操作部分从类中移去

class Page{  private $page;    //当前页码  private $page_num;    //数据总共分多少页显示  private $page_size;    //每页显示的数据条数  private $sql;    //查询的SQL语句  private $total_Num;    //总记录数  public $limit;    //查询语句后面的limit控制语句  public function __construct($total=100, $page_size=3){    $this->total_Num = $total;    $this->page_size = $page_size;    $this->page_num = ceil($this->total_Num / $page_size);    //计算总页数    $temp = (isset($_GET["page"]) ? $_GET["page"] : 1);    //获取当前页数    $this->setpage($temp);    $this->showpage();    $this->showFoot();  }  private function showpage(){    $this->limit = " LIMIT ".(($this->page - 1)* $this->page_size).",".$this->page_size;    //limit语句  }  private function setpage($page){    if($page < 1){      $page = 1;    }else if($page > $this->page_num){      $page = $this->page_num;    }    $this->page = $page;  }  private function showFoot(){     echo "<br/>";     echo "<a href='?page=1'>首页</a>丨";     echo "<a href='?page=".($this->page - 1)."'>上一页</a>丨";     echo "<a href='?page=".($this->page + 1)."'>下一页</a>丨";     echo "<a href='?page=".$this->page_num."'>尾页</a>丨";     echo "共有".$this->page_num."页丨";     echo "当前第".$this->page."页";  }}


为什么$total=100?我没100页呢。。

我问的是 $this->page 是否有变化


及时按你方法写的话我点下一页依然数据全无,我输出的是图片
下一页显示这个search1.php?page=2
首页是这个search1.php没后缀的。。。

我问的是 $this->page 是否有变化


如果按你这样写的话我不知道输出语句$pages = new Page();后面带什么参数好。。

$pages = new Page(总数, 每页数);

$pages = new Page(总数, 每页数);

跳转到第二页还是空白。。。是不是我哪里出错了?
显示代码如下
if($keyword=='桂林'||$keyword=='广西桂林'){	$result=mysql_query("select * from image_guilin limit 3");	while($abc = @mysql_fetch_array($result)){		echo "<img  src=".$abc['Image']." / alt="为什么我的PHP翻页不能翻到下一页呀求教" >";		echo "<br/>";	}	$pages = new Page(8, 3);}

看看 $keyword 是什么

看看 $keyword 是什么


		<form id="search_form" method="post" action="abcdefg.php"> 		<input type="text" id="search" value="城市、景点" onFocus="this.value=''" style="color:#ccc" name="search"/>		<input type="submit" id="s_search" value="搜索" name="Submit" onClick="return check(form)"/>		</form> 

$keyword=$_POST['search'];$sql=mysql_query("select * from didian where name like '%$keyword%'");$row=@mysql_fetch_object($sql);if(!$row){	echo "<font color='red'>您搜索的信息不存在,请使用类似的关键字进行检索!</font>";}
是一个用户输入的搜索框

看看 $keyword 是什么

已经解决了,原来是我参数有问题。。谢谢了。
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn