php做翻页为什么只显示一页,为什么我的PHP翻页不能翻到下一页呀求教

本文讨论了一个PHP类用于实现分页显示数据的问题,该类包括设置当前页码、总页数、每页显示条数等属性,并处理limit语句。然而,在搜索页应用该类时,翻页功能出现错误,导致无法正常显示下一页内容。经过分析,问题可能出在页面链接的后缀没有正确传递。解决方案是将数据库操作部分从类中分离,重构类以接收外部传入的总记录数和每页显示数量。经过调整,实现了分页功能的正常工作。
摘要由CSDN通过智能技术生成

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

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 "查询出错"."

"; }else{ echo "无数据"."

"; } return; } $cols = mysql_num_rows($result); while($row = mysql_fetch_array($result)){echo "

.%24row%5B'Image'%5D.";echo "

"; } } 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 "

"; echo "首页丨"; echo "上一页丨"; echo "下一页丨"; echo "尾页丨";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 "

"; echo "首页丨"; echo "上一页丨"; echo "下一页丨"; echo "尾页丨"; 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 "

"; echo "首页丨"; echo "上一页丨"; echo "下一页丨"; echo "尾页丨"; 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 "

.%24abc%5B'Image'%5D.";echo "

";}$pages = new Page(8, 3);}

看看 $keyword 是什么

看看 $keyword 是什么

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

看看 $keyword 是什么已经解决了,原来是我参数有问题。。谢谢了。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值