1

我正在使用 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>
4

3 回答 3

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();
}
于 2012-07-31T16:52:19.597 回答
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);
}
于 2012-07-31T23:58:50.220 回答
0

它更好地使用:

return $query->num_rows();

返回影响的行数...

于 2012-08-21T11:48:01.750 回答