CI 묻고 답하기

제목 페이지 네이션에 total_rows 에대해서
글쓴이 일성 작성시각 2014/08/05 21:40:39
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 12573   RSS
total_rows부분에 
$config['total_rows'] = $this->i_obj->all_count(3);//지정한 3의 값을 전부 받아온다
db에 kind 테이블에 1애서 4까지의 값이 있는되  1로 대어있는부분 2로 대어 있는부분 3,4 가지 대어이씨는부분이 있습니다 1로 된 값만 받았어 페이지네이션 사용할수 없나요 
안된는 것인돼 
function all_count($no) {
        $query =  $this->db->query("SELECT * FROM `recipe` WHERE kind = {$no} ;");
    
        if($query){
            return $query->num_rows();
        }
        return 0;
    
    }
이런식으로 한번 했봤습니다 DB밑에서 부분 64개 받아 오던대 ㅜㅜ 
뭔 어떻식으로 해야 할지 모르겠습니다

DB에 지정대 값만 받아올려고 합니다 kind 테이블에 1~4까지 의 값이 있는 게시판 입니다 1이면 1 만 받아오고 2면이의 값이돼어 있는 값만 받아오고 이런식으로 
 다음글 초보가 네이버 검색과 같은 기능에 대해서 질문드립니다. (1)
 이전글 모바일 CI 구해봅니다 (2)

댓글

darkninja / 2014/08/06 00:21:17 / 추천 0
안되는게 어디있겠습니까?
다만 삽질이 필요할 뿐이죠!!!
전 초보니 틀릴수가 있습니다^^
    // 전체 자료갯수 post list count pagination
    public function count() {
        $this->db->select('count(no) as Cnt');
        $this->db->where('original_no is null');

        $query = $this->db->get($this->post_table_name);
        if ($query->num_rows() <= 0) {
            return null;
        }
        return $query->row()->Cnt;
    }

    // 구간별로 보여줄 자료를 가져옵니다. post list pagination
    // $this->db->limit(10, 20);
    // 생성결과: LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)
    public function paginated($page_index=1, $per_page=10) {
 if($page_index<1) {
  $page_index = 1; 
        } 
        $this->db->select('*');
        $this->db->where('original_no is null');
        $this->db->order_by('reg_date', 'desc');
        $this->db->limit($per_page, ($page_index - 1) * $per_page);

        $query = $this->db->get($this->post_table_name);
        return $query->result();
    }

    // search count
    // 검색조건에 맞는 검색결과 자료의 갯수를 구합니다.
    public function search_count($search_field, $search_text) {
        $this->db->select('count(no) as Cnt');

 if (is_array($search_field)) {
  if (is_array($search_text)) {
   foreach($search_field as $field) {
    foreach($search_text as $text) {
     $this->db->or_like($field, $text);
    } 
   }
  } else {
   foreach($search_field as $field) {
    $this->db->or_like($field, $search_text);
   }
  }
 } else {
  if (is_array($search_text)) {
   foreach($search_text as $text) {
    $this->db->or_like($search_field, $text);
   }
  } else {
   $this->db->or_like($search_field, $search_text);
  }
 } 
        $this->db->where('original_no is null');
  
        $query = $this->db->get($this->post_table_name);
        if ($query->num_rows() <= 0) {
            return null;
        }
        return $query->row()->Cnt;
 } 
 
 // search pagination posts
        // 검색한 자료를 구간별로 가져옵니다.
        public function search_paginated($search_field, $search_text, $page_index=1, $per_page=10) {
            $this->db->select('*');
            $this->db->order_by('modify_date', 'desc');

     if (is_array($search_field)) {
  if (is_array($search_text)) {
   foreach($search_field as $field) {
    foreach($search_text as $text) {
     $this->db->or_like($field, $text);
    } 
   }
  } else {
   foreach($search_field as $field) {
    $this->db->or_like($field, $search_text);
   }
  }
 } else {
  if (is_array($search_text)) {
   foreach($search_text as $text) {
    $this->db->or_like($search_field, $text);
   }
  } else {
   $this->db->or_like($search_field, $search_text);
  }
 } 
        $this->db->where('original_no is null');
  
        $this->db->limit($per_page, ($page_index - 1) * $per_page);

        $query = $this->db->get($this->post_table_name);
        return $query->result();
    }