自己扩展了CI的sql写一个分页函数
/** 分页函数
* 参数1:查询类型 0:查询数量 1:查询数据
* 参数2:表
* 参数3:查询条件where 条件格式arrar(array('k1'=>v1),array('k2'=>v2))
* 参数4:order 条件 格式array('字段'=>排序)
* 参数5:分页数
* 参数6:分页偏移量
* 参数7:like条件因为用的少..所以放后面..以后全部同理 用法 条件 格式array('字段'=>值)==WHERE title LIKE '%value%'目前用的是最简单的like 以后遇到复杂的在改
* 参数8:joinArr join连接表格式array(array('表名','连接条件','连接方向'))
* 参数9:要查询的字段$string
* 参数10:加入in查询 传入array('字段'=>'值的数组') 例如$names = array('Frank', 'Todd', 'James'); $this->db->where_in('username', $names); 生成: WHERE username IN ('Frank', 'Todd', 'James')
* 参数11:orlike条件用法和like一样...没有把这2个合并是因为括号不兼容
* 参数12:加入not in查询 用法和in一样...主要是SBCI不支持" and c.isnew != 1 and c.isnew != 3"这种模式..只能用not in 来代替
*/
function get_fenye_fun($type,$table,$whereArr=array(),$orderArr=array(),$page,$offset=0,$likeArr=array(),$joinArr=array(),$selectStr='',$inWhereArr=array(),$orlikeArr=array(),$noinWhereArr=array()){
// $this->db->from('kehu_member_gendan');
// return $this->db->count_all_results();
if(!empty($whereArr)){
foreach($whereArr as $k=>$v){
// var_dump($v);
foreach($v as $kk=>$vv){
$this->db->where($kk,$vv);
}
}
}
if(!empty($orderArr)){
foreach($orderArr as $k=>$v){
$this->db->order_by($k,$v);
}
}
if(!empty($likeArr)){
foreach($likeArr as $k=>$v){
$this->db->like($k,$v);
}
}
if(!empty($orlikeArr)){
foreach($orlikeArr as $k=>$v){
$this->db->or_like($k,$v);
}
}
if(!empty($joinArr)){
foreach($joinArr as $k=>$v){
$this->db->join($v, $v, $v);
}
}
if(!empty($selectStr)){
$this->db->select($selectStr);
}
if(!empty($inWhereArr)){
foreach($inWhereArr as $k=>$v){
$this->db->where_in($k,$v);
}
}
if(!empty($noinWhereArr)){
foreach($noinWhereArr as $k=>$v){
$this->db->where_not_in($k,$v);
}
}
if(empty($type)){
$this->db->from($table);
return $this->db->count_all_results();
}else{
$this->db->limit($page, $offset);
return $this->db->get($table);
}
}
我的博客 问一下楼主,普通列表形式不传参的话比较容易,用CI原生的分页类也可以
就是问一下,如果有查询条件的情况,这个查询条件您是怎么传递的呢?URL么?
页:
[1]