반응형
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
반응형
'IT박스' 카테고리의 다른 글
목록에서 두 항목 교체 (0) | 2020.11.20 |
---|---|
--all-databases 덤프에서 단일 데이터베이스 가져 오기 (0) | 2020.11.20 |
Android-L CardView 비주얼 터치 피드백 (0) | 2020.11.19 |
스낵바가 자동으로 닫 혔을 때 어떻게 알림을받을 수 있습니까? (0) | 2020.11.19 |
SQLite-ORDER BY RAND () (0) | 2020.11.19 |