Thinkphp搜索附带分页

时间:2022-10-27 12:38:46

这段时间,刚好用tp写一个管理系统的项目,用到了分页以及搜索分页,在这里想分享一下,也算是自己做个小笔记了。

话不多说,上代码。

// 保存查询条件
if($_GET['keyword']){// 关键字
$keyword = $_GET['keyword'] ;
if(is_numeric($keyword)){ //判断传值是姓名还是手机号
$map['zhphone'] = array('like', "%{$keyword}%");

}else{
$map['name'] = array('like', "%{$keyword}%");

}

$this->assign('keyword', $keyword);
}

$mod = M('wdworker');

// 分页数据
$list = $mod->where($map)->select();
$count = count($list);// 查询满足要求的总记录数
$Page = new \Think\Page($count,10);// 实例化分页类 传入总记录数和每页显示的记录数
foreach ($map as $key => $val) {
if (!is_array($val)) {
$Page->parameter .= "$key=" . urlencode($val) . "&";
}
}
$list = $mod->where($map)->order('writetime desc')->limit($Page->firstRow.','.$Page->listRows)->select();
$show = $Page->show();


$this->assign('list',$list);
$this->assign('totalCount',$count);
$this->assign('page',$show);

因为我的前端页面的搜索时可以输入手机号或者姓名,所以在后台使用 is_numeric()函数 进行了判断。下方使用parameter赋值的时候多了一部判断,和官方的有些出入。我在这里使用的是GET传值,接收也是GET,你也可以使用POST方式。好了,就这么多。