php 搜索结果分页问题
比如搜索到的结果显示是3条数据没错的,总数也是3条,但点下一页总数就变成了6(数据库的总共条数了),这个怎么解决啊第一次是传值过去了,点下一页就变成了数据库总数了我用的是...
比如 搜索到的结果显示是3条数据没错的,总数也是3条,但点下一页总数就变成了6(数据库的总共条数了),这个怎么解决啊
第一次是传值过去了,点下一页就变成了数据库总数了 我用的是thinkphp自己写的分页
class Tage{
public $total;//每页显示多少条
public $numpage;//一共有多少个分页
public $count;//数据库总数
protected $config=array('header'=>'条记录','up'=>'上一页','next'=>'下一页','first'=>'首页','last'=>'尾页');
public $page;
public $pageboth=2;//两边的数量
public function __construct($count,$total){
$this->count=$count;//数据库总数
$this->total=$total;//每页显示多少条
$this->numpage=ceil($this->count/$this->total);
$this->page=$this->getpage();//获取page各种验证
}
public function getpage(){//获取page各种验证
if(!empty($_GET['page'])){
if($_GET['page']>0){
if($_GET['page']>$this->numpage){
return $this->numpage;
}else{
return $_GET['page'];
}
}else{
return 1;
}
} else{
return 1;
}
}
//ACTION类分页
function search(){
$search=M("Adve");
$keyword=$_POST['keyword'];
$map['advename']=array('like',"%$keyword%");
//找到搜索数据的总数
import('ORG.Util.Tage');
// $count=$search->count();
$count=$search->where($map)->count();
$listpage=new Tage($count,1);
$rowAll=$search->where($map)->limit($listpage->total)->page($listpage->page)->select();
dump($count);
$Page=$listpage->show();
foreach ($rowAll as $key=>$value){
if($rowAll[$key]['start']=='0'){
$rowAll[$key]['start']='是';
}else{
$rowAll[$key]['start']='否';
}
}
$this->assign('row',$rowAll);//文章内容
$this->assign('page',$Page);
$this->display('search');
}
帮帮我啊 真不知道怎么解决 谢谢大家 解决分全送了 展开
第一次是传值过去了,点下一页就变成了数据库总数了 我用的是thinkphp自己写的分页
class Tage{
public $total;//每页显示多少条
public $numpage;//一共有多少个分页
public $count;//数据库总数
protected $config=array('header'=>'条记录','up'=>'上一页','next'=>'下一页','first'=>'首页','last'=>'尾页');
public $page;
public $pageboth=2;//两边的数量
public function __construct($count,$total){
$this->count=$count;//数据库总数
$this->total=$total;//每页显示多少条
$this->numpage=ceil($this->count/$this->total);
$this->page=$this->getpage();//获取page各种验证
}
public function getpage(){//获取page各种验证
if(!empty($_GET['page'])){
if($_GET['page']>0){
if($_GET['page']>$this->numpage){
return $this->numpage;
}else{
return $_GET['page'];
}
}else{
return 1;
}
} else{
return 1;
}
}
//ACTION类分页
function search(){
$search=M("Adve");
$keyword=$_POST['keyword'];
$map['advename']=array('like',"%$keyword%");
//找到搜索数据的总数
import('ORG.Util.Tage');
// $count=$search->count();
$count=$search->where($map)->count();
$listpage=new Tage($count,1);
$rowAll=$search->where($map)->limit($listpage->total)->page($listpage->page)->select();
dump($count);
$Page=$listpage->show();
foreach ($rowAll as $key=>$value){
if($rowAll[$key]['start']=='0'){
$rowAll[$key]['start']='是';
}else{
$rowAll[$key]['start']='否';
}
}
$this->assign('row',$rowAll);//文章内容
$this->assign('page',$Page);
$this->display('search');
}
帮帮我啊 真不知道怎么解决 谢谢大家 解决分全送了 展开
2个回答
展开全部
第二页没管用 是搜索的值传递没跟过去 你把where里面加 like 我也没测试你的程序 你看看我的这个吧
public function page(){
$User=new NewsModel();
//print_r($User->select()); //关联操作
import("ORG.Util.Page"); // 导入分页类
$map=$_GET[ss];
$count = $User->where("title like '%$map%'")->count(); // 查询满足要求的总记录数
$Page = new Page($count,5); // 实例化分页类 传入总记录数和每页显示的记录数
$list = $User->join("think_type on tid=think_type.id")->where("title like '%$map%'")->limit($Page->firstRow.','.$Page->listRows)->select();
//echo "<pre>";
//print_r($list);
foreach($map as $key=>$val) {
$Page->parameter .= "$key=".urlencode($val)."&";
}
$show = $Page->show(); // 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$this->assign('list',$list); // 赋值数据集
$this->assign("page",$show); // 赋值分页输出
$this->display();
}
public function page(){
$User=new NewsModel();
//print_r($User->select()); //关联操作
import("ORG.Util.Page"); // 导入分页类
$map=$_GET[ss];
$count = $User->where("title like '%$map%'")->count(); // 查询满足要求的总记录数
$Page = new Page($count,5); // 实例化分页类 传入总记录数和每页显示的记录数
$list = $User->join("think_type on tid=think_type.id")->where("title like '%$map%'")->limit($Page->firstRow.','.$Page->listRows)->select();
//echo "<pre>";
//print_r($list);
foreach($map as $key=>$val) {
$Page->parameter .= "$key=".urlencode($val)."&";
}
$show = $Page->show(); // 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$this->assign('list',$list); // 赋值数据集
$this->assign("page",$show); // 赋值分页输出
$this->display();
}
更多追问追答
追问
$count=$search->where($map)->count(); 已经把搜索的值传过去了,搜索结果是正确的 就是下一页就成了全部数据库数据了,或许是我把搜索做成了ajax搜索才会吧 我试试
追答
因为下一页的数据没“hold”住 你加like试了么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询