2017-05-01 8 views
0

私はcodeigniterとpostgresqlを使用してphpで試験レポートを作成しています。これは質問に正しく答えた生徒の数と数、そして質問に間違って答えた生徒の数です。データを表示しようとすると、実際には3行しかないときに1行しか印刷されません。私は、配列の要素が何であるかを知ってますprint_r()を使用し、それは次のようになります。 RESULT: print_r()Codeigniter:配列は1行しか返しません。

しかし、その後、私はビューでそれを表示しようとしたときに、それは次のように判明: Result of displaying in View

私が持っています私のコントローラでのこれら:

public function loadViewExamResult(){ 
    $this->load->model('exam_model'); 
    $exam_no= $this->uri->segment(3); 
    $data['answers'] = $this->exam_model->correctWrong($exam_no); 
    print_r($data['answers']) ; 

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

} 

モデル:私はSOLVはどうすればよい

<?php 
    foreach ($answers as $row) { 
     $question = $row->question; 
     $correct = $row->correct; 
     $wrong = $row->wrong; 
    } 
?> 


<div class="row"> 
    <div class="col-lg-12"> 
    <section class="panel"> 
    <header class="panel-heading"> 
     EXAM STATISTICS 
    </header> 
    <div class="panel-body text-center"> 
     <table class="table table-striped table-advance table-hover"> 
     <tbody> 
     <tr> 
      <th>QUESTION</th> 
      <th>No. of Correct</th> 
      <th>No. of Wrong</th> 
     </tr> 

     <tr> 
      <td><?php echo $question;?></td>  
      <td><?php echo $correct;?></td> 
      td><?php echo $wrong;?></td> 
     </tr> 

     </tbody> 
     </table> 
    </div> 
    </section> 
    </div> 
    </div> 

これは?

答えて

2

問題はここにある:

$questionの最後の値の繰り返しごとに
foreach ($answers as $row) { 
     $question = $row->question; 
     $correct = $row->correct; 
     $wrong = $row->wrong; 
} 

$correct$wrongは上書きです。それは作品

foreach ($answers as $row) { 
?> 
<tr> 
    <td><?php echo $row->$question;?></td>  
    <td><?php echo $row->$correct;?></td> 
    td><?php echo $row->$wrong;?></td> 
</tr> 
<?php 
} 
?> 
+0

:よう

foreach ($answers as $row) { $question[] = $row->question; $correct[] = $row->correct; $wrong[] = $row->wrong; } 

またはループ内のテーブルtrを置く:彼らはのように複数の値を保持することができるようにそれらの配列を確認します。どうもありがとうございます。 – dubiousconquest

+0

素晴らしいサウンドです! –

関連する問題