cuzn 发表于 2012-6-5 16:23:15

自己扩展了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);
                }
        }


我的博客

kissgxd 发表于 2012-6-8 10:15:02

问一下楼主,普通列表形式不传参的话比较容易,用CI原生的分页类也可以
就是问一下,如果有查询条件的情况,这个查询条件您是怎么传递的呢?URL么?
页: [1]
查看完整版本: 自己扩展了CI的sql写一个分页函数