首先需要一个搜索的表单
//处理的页面 // 获取到查询的条件 $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");