在ThinkPhp 中使用原生的 带条件查询 + 分页
2016-11-08 00:00
323 查看
首先需要一个搜索的表单 <!--添加 查询--> <form name="form" id="form" method="POST" action="U('action')" >//跳转到处理页面 <div class="pub_line clearfix"> <div class="floatr"> <div class="pub_search"> //搜索的值 <input type="text" class="ui-input" placeholder="搜索" id="keyword" name="keyword"> <button type="submit" class="icon icon-search"></button> </div> <div class="floatr"> //搜索的类型 <select name="typeid" id="typeid" class="form-control input-sm"> <option value="">全部类型</option> <option value="1">条件1</option> <option value="2">条件2</option> </select> </div> </div> </form>
//处理的页面 // 获取到查询的条件 $typeid = I('post.typeid'); $text = I('post.keyword'); // 声明一个查询变量 $where = ''; // 根据获取到的值,再判断是什么查询 if($typeid == '1'){ $where = 'WHERE id='.$text; }elseif($typeid == '2'){ $where = 'WHERE name='.$text; } //统计符合条件的总数据 $total = M()->query("SELECT count(*) as total FROM User $where"); //上面这条语句查询出来的结果是二维数组 //总页码为 $maxtotal = $total[ 0 ][ 'total' ]; //设置展示的条数 $num = 5; //计算出最大页码(总条数除以分页数) ceil 为 进一取整(如 2/3 时 结果是 1.5 则最大页码是 2); $maxPage = ceil($maxtotal / $num); //获取页码 $p = empty( I('get.p') ) ? '1' : I('get.p'); //设定开始值 $start = ($p -1) * $num; /*由于limit(n,m) 意思为读取 从第n 条数据开始读取 到 只取m条 第一页是 limit( (1-1),m); 意思是从第0条开始读取 m条 第二页 limit( (2-1) ,m ); 意思是从第 1 * m 条读取 m条*/ //然后判断传的页数是否正常 $p =max('1',$p); $p = min($maxPage,$p); //执行原生的查询语句 ,拼接上查询语句,如果没有条件时$where 是空的所以不用担心查询语句出错 M()->query("SELECT * FROM User $where LIMIT $start,$num");
相关文章推荐
- ThinkPHP的使用(三)带查询条件的分页
- Hibernate使用原生的动态sql实现带条件的查询分页功能
- Thinkphp使用mongodb数据库实现多条件查询方法
- Thinkphp使用mongodb数据库实现多条件查询方法
- Thinkphp 查询条件 and 和 or同时使用即复合查询
- thinkphp使用原生语句多表查询
- Hibernate里面如何使用DetachedCriteriaCriteria 实现多条件分页查询
- ThinkPHP 分页中带入查询(搜索)条件
- Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
- Hibernate-Criteria查询(3)DetachedCriteria构造查询条件、命名查询、原生SQL、调用存储过程(使用JDBC)
- thinkPHP使用post方式查询时分页失效的解决方法
- MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查询条件分页
- Thinkphp使用mongodb数据库实现多条件查询方法
- Thinkphp分页时查询条件保存方法
- Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
- thinkphp分页时保持查询条件
- 如何在ThinkPHP里面使用原生的SQL查询操作
- ThinkPHP中各种搜索条件的使用、查询
- ThinkPHP中各种搜索条件的使用、查询
- ThinkPHP3.2.3 分页带入查询条件 JS重写