codeigniter传递count_all_results来查看

时间:2012-07-31 16:49:28

标签: codeigniter codeigniter-2

我正在使用count_all_results()函数返回用户所说语言的数量。但是当我尝试将数字传递给视图时,我不断获得一个php未定义的变量(对于$ lang_cnt)。以下是我的代码:

模型

function countLanguages($id) {

    $this->db->where('user_id', $id)->from('languages');
    return $this->db->count_all_results();
}

控制器

function showLangCount() {

    $data['lang_cnt'] = $this->language_model->countLanguages($id);

    $this->load->view('lang_view', $data);
}

查看

<p>This user speaks <?php echo $lang_cnt; ?> languages.</p>

3 个答案:

答案 0 :(得分:2)

一个问题是你的模型函数有两个参数:

function countLanguages($id, $cnt_languages)

但是当你打电话给它时,你只传递一个论点:

$this->language_model->countLanguages($cnt_languages);

正如Rocket指出的那样,一个更大的问题是countLanguages没有返回任何东西。试试这个:

function countLanguages($id) {
  $this->db->where('user_id', $id)->from('languages');
  return $this->db->count_all_results();
}

答案 1 :(得分:0)

如果模型函数返回值,请务必检查它们。试试这个:

function showLangCount() {
    if($this->language_model->countLanguages($id))
    {
        $data['lang_cnt'] = $this->language_model->countLanguages($id);
    }
    else
    {
        $data['lang_cnt'] = NULL;
    }

    $this->load->view('lang_view', $data);
}

答案 2 :(得分:0)

更好用:

return $query->num_rows();

返回受影响的行数...