2016-07-07 62 views
0

我在成员控制器中编写自定义函数。 该功能的目的是: -CakePHP querybuilder的计数行数

  1. 首先它检查是否在members表中存在的ID。
  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

'$这个 - > Member'是一个模型对象, 考虑一下。 – ndm

回答

0

这应该多个成员IDS工作(其中1,2,3 ...是你的会员ID):

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

单会员ID:

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

行的数量将由$your_result_var['count']代表;