想要传递多个关联数组来查看,但其中一个数组只有一个变量

时间:2013-05-03 16:27:19

标签: php codeigniter

我有一个将数组传递给视图的控制器。遗憾的是,视图中没有其中一个字段$data['c']。它只有一个变量。

function view() {
    $this->load->model('rateteacher_m');
    $rate_id= $this->uri->segment(4);
    $data['rows'] = $this->rateteacher_m->get_by_id($rate_id);
    $data['answers'] = $this->rateteacher_m->get_answer_by_question_id($rate_id);
    $data['c'] = $this->rateteacher_m->check_follow($rate_id,1) ;
    $this->load->view('specific_rateteacher_v', $data);
}

和我的模特......

function check_follow($rate_id,$user_id) {
    $count=mysql_num_rows($user_sql);
    $this->db->select('teacher_id, user_id');
    $this->db->from('teacher_follow');
    $q = $this->db->get();
    $result= $this->db->count_all_results();      
    $data['aa']=$result;
    return $data;
}

然后我尝试打印所有内容视图:

<?php foreach($c as $r) : ?>
    <?php echo $r->aa; ?>
<?php endforeach; ?>

我想在视图中打印计数但是没有完成。我不确定我做错了什么。

2 个答案:

答案 0 :(得分:0)

check_follow()方法返回一个包含一个项目的数组。 $this->db->count_all_results();返回一个整数。因此,如果它返回1,则该方法返回array('aa' => 1)而不返回任何其他内容。

然后在您的视图中,您尝试回显对象,但它已设置为数组,因此请改为使用$c['aa']$r->aa

答案 1 :(得分:0)

这是一个不同的角度。如果您的数据库结果可能是一个或多个,则可以执行此操作。

$query = $this->db->get( 'something' );

// its 1, so return the row()
if ( $query->num_rows() == 1 ) {
    return $query->row(); }

// its more then 1, return result() 
elseif( $query->num_rows() > 1 ) {
    return $query->result(); }

// no results, return false
else { return false ; }

将始终将db结果作为对象返回(不需要在视图中显示括号)