2017-05-01 2 views
0

Ich erstelle einen Prüfungsbericht in PHP mit coderigniter und postgresql, der die Fragen und die Anzahl der Schüler anzeigt, die die Fragen korrekt beantwortet haben und die Anzahl der Schüler, die die Fragen falsch beantwortet haben. Wenn ich versuchte, die Daten anzuzeigen, druckt es nur eine Zeile, wenn ich tatsächlich 3 Zeilen habe. Früher habe ich print_r() zu wissen, was die Elemente meiner Reihe sind, und es sieht wie folgt aus: RESULT: print_r()Codeigniter: Array gibt nur eine Zeile in Sicht zurück

Aber dann, wenn ich es in Ansichten versucht, die Anzeige, wird es wie folgt aus: Result of displaying in View

Ich habe diese in meinem Controller:

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); 

} 

Modell:

<?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> 

Wie kann ich solv e das?

Antwort

2

Die Frage ist hier:

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

bei jeder Iteration den letzten Wert in $question, $correct, $wrong über geschrieben. Machen Sie ihnen das Array, so dass sie mehrere Werte wie halten können:

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

oder setzen den Tisch tr in der Schleife wie:

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

Es funktioniert. Ich danke dir sehr. – dubiousconquest

+0

Klingt gut !! –

Verwandte Themen