我正在使用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>
答案 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();
返回受影响的行数...