计算Cakephp querybuilder的行数

时间:2016-07-07 07:41:20

标签: php mysql cakephp query-builder

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

  1. 首先检查members表中是否存在id。
  2. 如果它不存在则返回0;
  3. 如果存在,则检查isActive状态是0还是1;
  4. 如果它为0,则返回0,否则为1;
  5. 现在,我正在编写这些函数: -

    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)));
    

    但如何在模型中应用计数程序?

2 个答案:

答案 0 :(得分:0)

这适用于多个成员ID(其中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'];

表示

答案 1 :(得分:0)

如果$ this->查询($ query)返回数组, 你可以算一下:

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

请阅读此详细信息 http://www.w3schools.com/Php/func_array_count.asp