IT박스

CodeIgniter Active Record-반환 된 행 수 가져 오기

itboxs 2020. 11. 19. 07:59
반응형

CodeIgniter Active Record-반환 된 행 수 가져 오기


저는 특히 CodeIgniter와 Active Record를 처음 접했습니다. 일반 SQL에서이 작업을 잘 수행하는 방법을 알고 있지만 배우려고합니다.

내 테이블 중 하나에서 일부 데이터를 선택한 다음 CodeIgniters Active Record 클래스를 사용하여 반환되는 행 수를 계산하려면 어떻게해야합니까?

고마워, 톰.


여기 에서 결과 함수를 살펴보십시오 .

$this->db->from('yourtable');
[... more active record code ...]
$query = $this->db->get();
$rowcount = $query->num_rows();

그리고 테이블의 모든 행 수를 얻으려면

$table_row_count = $this->db->count_all('table_name');

이것은 당신에게 간다 :

public function count_news_by_category($cat)
{
    return $this->db
        ->where('category', $cat)
        ->where('is_enabled', 1)
        ->count_all_results('news');
}

내 현재 프로젝트의 예입니다.

벤치마킹 에 따르면 이 쿼리는 다음을 수행하는 것보다 더 빠르게 작동합니다.

$this->db->select('*')->from('news')->where(...); 
$q = $this->db->get(); 
return $q->num_rows();

쿼리에 행 수만 필요하고 실제 행 데이터는 필요하지 않은 경우 count_all_results

echo $this->db
       ->where('active',1)
       ->count_all_results('table_name');

문서를 읽어야 해 아들!

$query->num_rows();

다음 두 가지 방법으로이 작업을 수행 할 수 있습니다.

  1. $this->db->query(); //execute the query
     $query = $this->db->get() // get query result
     $count = $query->num_rows() //get current query record.

  2.  $this->db->query(); //execute the query
      $query = $this->db->get() // get query result
      $count = count($query->results()) 
          or   count($query->row_array())  //get current query record.

조건이 영향을받은 행이나 데이터를 찾는 경우에도 매우 유용한 기능입니다.

function num_rows($table)
    {   
       return $this->db->affected_rows($table);
    }

$this->db->select('count(id) as rows');
$this->db->from('table_name');
$this->db->where('active',1);
$query = $this->db->get();
foreach($query->result() as $r)
{
   return $r->rows;
}

모델에 대한이 코드 세그먼트

function getCount($tblName){
    $query = $this->db->get($tblName);
    $rowCount = $query->num_rows();
    return $rowCount;       
}

이것은 컨트롤러 용입니다.

  public function index() {
    $data['employeeCount']= $this->CMS_model->getCount("employee");
    $this->load->view("hrdept/main",$data);
}

이것은보기를위한 것입니다

<div class="count">
  <?php echo $employeeCount; ?>                                                                                            
 </div>

이 코드는 내 프로젝트에서 사용되며 제대로 작동합니다.

결과


function getCount(){
    return $this->db->get('table_name')->num_rows();
}

$sql = "SELECT count(id) as value FROM your_table WHERE your_field = ?";
$your_count = $this->db->query($sql, array($your_field))->row(0)->value;
echo $your_count;

참고 URL : https://stackoverflow.com/questions/1222766/codeigniter-active-record-get-number-of-returned-rows

반응형