Maison  >  Article  >  développement back-end  >  为什么我的PHP翻页不能翻到下一页呀求教

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

WBOY
WBOYoriginal
2016-06-23 13:23:271649parcourir

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

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 是什么

已经解决了,原来是我参数有问题。。谢谢了。
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn