当前位置: 代码迷 >> PHP >> 为什么小弟我的PHP翻页不能翻到下一页呀?求教
  详细解决方案

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

热度:40   发布时间:2016-04-28 16:49:42.0
为什么我的PHP翻页不能翻到下一页呀??求教
我定义了一个类来输出的  下面是类属性...最后是搜索页
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']." />";
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."页";
        }
  }

搜索页的我就给一部分吧。
<form id="search_form" method="post" action="search1.php"> //search1.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> 
下面是搜索页的PHP
include("c.php");//c.php是上面的PHP程序
$keyword=$_POST['search'];
$sql=mysql_query("select * from didian where name like '%$keyword%'");
[email protected]_fetch_object($sql);
if(!$row){
echo "<font color='red'>您搜索的信息不存在,请使用类似的关键字进行检索!</font>";
}
if($keyword=='北京'){
$pages = new Page('SELECT * FROM `image_beijing`', 3);
}
代码就这样。。如在类中显示就可以实现翻到下一页,但到搜索页就不能翻页了,只能看到首页,一翻页就什么信息都没,我想问下是什么问题呀。。。求教~~~感谢...
------解决思路----------------------
那我要建议你重写了,把数据库操作部分从类中移去
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."页";
  }
}
  相关解决方案