2016-07-07 5 views
0

私は、カスタムコントローラーをメンバーコントローラーに書いています。 機能の目的は、このている: -Cakephpクエリービルダーの行数をカウントします。

  1. 最初のIDがmembersテーブルに存在する場合、それはチェックします。
  2. 存在しない場合は0を返します。
  3. が存在する場合、isActiveステータスが0または1かどうかをチェックします。
  4. 0の場合は0を返し、それ以外の場合は1を返します。

今、私はこれらのとしての機能を書いています: -

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-> Member'はモデルオブジェクトです詳細については、これを読ん

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

それについて考える。 – ndm

答えて

0

これは、複数の会員IDのために働く必要があります(1、2、3 ...であるあなたの会員ID):単一のメンバー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']で表される。の$ this - >クエリ($クエリ)リターンアレイの場合

関連する問題