get_list_by_where

 /**
     * 查询数据
     * @param $param
     * @param bool $get_rows 或者总数
     * @param bool $get_one 或者一条记录
     * @param bool $master 是否主表查询
     */
    public function get_list_by_where(array $params, $get_rows = false, $get_one = false,$master=false)
    {
        $this->db->from($this->table);
        if (isset($params['select'])) {
            if (isset($params['select_escape'])) {
                $this->db->select($params['select'], false);
            } else {
                $this->db->select($params['select']);
            }
        }

        if($master){
            $this->db->force_master();
        }
        if (isset($params['where']) && is_array($params['where'])) {
            $this->db->where($params['where']);
        }

        if (isset($params['where_in']) && is_array($params['where_in'])) {
            $this->db->where_in($params['where_in']['key'], $params['where_in']['value']);
        }

        if (isset($params['join'])) {
            foreach ($params['join'] as $item) {
                $this->db->join($item['table'], $item['where'], $item['type']);
            }
        }
        if (isset($params['limit'])) {
            if (is_array($params['limit']) && isset($params['limit']['page']) && isset($params['limit']['page_size'])) {
                $this->db->limit($params['limit']['page_size'],($params['limit']['page']-1)*$params['limit']['page_size']);
            } else {
                $this->db->limit($params['limit']);
            }
        }

        if (isset($params['group'])) {
            $this->db->group_by($params['group']);
        }
        if (isset($params['order'])) {
            if (is_array($params['order'])) {
                foreach ($params['order'] as $v) {
                    $this->db->order_by($v['key'], $v['value']);
                }
            } else {
                $this->db->order_by($params['order']);
            }

        }

        $result = $this->db->get();
        if (!$get_one) {
            return $get_rows ? $result->num_rows() : ($result->num_rows() > 0 ? $result->result_array() : array());
        } else {
            return $get_rows ? $result->num_rows() : ($result->num_rows() > 0 ? $result->row_array() : array());
        }
    }

  

posted @ 2018-09-05 13:01  brady-wang  阅读(377)  评论(0编辑  收藏  举报