0

配列をビューに渡すコントローラーがあります。残念ながら、フィールドの 1 つが$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; ?>

ビューにカウントを出力したいのですが、実行されていません。何が間違っているのかわかりません。

4

2 に答える 2

0

あなたの check_follow() メソッドは、1 つのアイテムを含む配列を返しています。$this->db->count_all_results();整数を返します。したがって、1 が返された場合、メソッドは返されており、他にはarray('aa' => 1)何もありません。

次に、ビューでオブジェクトをエコーし​​ようとしていますが、配列に設定されているため、$c['aa']代わりにまたはを使用して$r->aaください。

于 2013-05-03T16:38:58.023 に答える
0

これは別の角度です。データベースの結果が 1 つまたは複数の可能性がある場合は、これを行うことができます。

$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 ; }

常にデータベースの結果をオブジェクトとして返します (ビューに表示するために括弧は必要ありません)

于 2013-05-04T01:43:59.040 に答える