2016-07-07 5 views
0

저는 회원 컨트롤러에 커스텀 함수를 작성하고 있습니다. 함수의 목적이있다 : -Cakephp querybuilder의 행 수를 계산합니다.

  1. 우선 아이디가 members 테이블에 존재하는지가 체크한다.
  2. 존재하지 않으면 0을 반환하고 그렇지 않으면 0을 반환합니다.
  3. 존재하는 경우 isActive 상태가 0 또는 1인지 확인합니다.
  4. 0이면 0을 반환하고 그렇지 않으면 1을 반환하고 그렇지 않으면 0을 반환합니다.

지금, 나는이 같은 기능을 쓰고 있어요 : -

public function memberExist($id) 
{ 
    $query = "SELECT Member.id FROM members AS Member WHERE Member.id = $id AND Member.isActive = 1"; 
    // Here I want to write something like: 
    // if($this->query($query)->num_rows()>0) return 1; else return 0; 
} 

그러나, 문제는, 내가 쿼리 빌더에서 행의 수를 얻는 방법을 지금하지 않습니다 (죄송 이름 인 경우 정확하지 않은, 나는 cakephp에 처음이다).

$this->query($query)은 배열을 반환합니다.

컨트롤러, 우리는, 행 수

$userdata = $this->Member->find('count',array('conditions'=>array('Member.id'=>$id, 'Member.isActive'=>1))); 

를 얻기 위해 다음과 같은 방법을 사용할 수 있습니다하지만 어떻게 모델에 카운트 절차를 적용?

+0

'$ this-이 읽을

$records = $this->query($query); $n = count($records); //count of rows 

> Member'는 모델 객체입니다 생각 해봐. – ndm

답변

0

이 여러 개의 회원 ID에 대한 작동합니다 (1, 2, 3 ... 당신의 회원 IDS) : 하나의 회원 ID에 대한

$query = "SELECT COUNT(Member.id) as count FROM members AS Member WHERE Member.id in (1, 2, 3, 4) AND Member.isActive = 1;"; 

: 행의

$query = "SELECT COUNT(Member.id) as count FROM members AS Member WHERE Member.id = ".$id." AND Member.isActive = 1;"; 

번호 것 $your_result_var['count']으로 표시;

관련 문제