2016-11-10 5 views
4

Ich verwende Codeigniter. Ich gebe die von der Datenbank abgerufenen Daten an meine Ansicht weiter. Es gibt 5 Listen, die ich in einer Tabelle anzeigen muss. Jede Spalte sollte eine Liste von Namen enthalten, die von foreach loop in der Ansicht generiert wurden. Folgendes ist mein Code der Ansicht.Ordnen Sie Daten, die von der Datenbank in einer HTML-Tabelle abgerufen werden, mit Foreach

<table class="table table-hover" > 
    <thead> 
    <tr> 
     <th scope="col" width="20%">Cameramen</th> 
     <th scope="col" width="30%">Camera Assistants</th> 
     <th scope="col" width="12%">Technical Assistants</th> 
     <th scope="col" width="20%">Setup Engineer</th> 
     <th scope="col" width="30%">Audio Operator</th> 
     <th scope="col" width="12%">Vision Operator</th> 
    </tr> 
    </thead> 


    <tbody> 
     <tr> 
     <?php 
     $index = 0; 
     foreach($c_list as $n_key){?> 

      <td><?php echo $index+1; ?> 
      <?php echo $n_key->name; ?><br/><br/> 
      <?php 
       $index++; 
       }?> 
      </td> 

     <?php 
      $index = 0; 
      foreach($ca_list as $n_key){?> 
      <td><?php echo $index+1; ?> 
       <?php echo $n_key->name; ?><br/><br/> 
       <?php 
       $index++; 
       }?> 
      </td> 

      <?php 
      $index = 0; 
       foreach($ta_list as $n_key){?> 
       <td><?php echo $index+1; ?> 
       <?php echo $n_key->name; ?><br/><br/> 
       <?php 
        $index++; 
        }?> 
       </td> 


      <?php 
       $index = 0; 
       foreach($se_list as $n_key){?> 
       <td><?php echo $index+1; ?> 
       <?php echo $n_key->name; ?><br/><br/> 
       <?php 
        $index++; 
        }?> 
       </td> 

      <?php 
       $index = 0; 
       foreach($ao_list as $n_key){?> 
       <td><?php echo $index+1; ?> 
        <?php echo $n_key->name; ?><br/><br/> 
        <?php 
        $index++; 
        }?> 
       </td> 

       <?php 
       $index = 0; 
        foreach($vo_list as $n_key){?> 
        <td><?php echo $index+1; ?> 
        <?php echo $n_key->name; ?><br/><br/> 
        <?php 
         $index++; 
         }?> 
        </td> 

      </tr> 
      </tbody> 
     </table> 

Aber es gibt das folgende out Put.

enter image description here

Ich möchte die Namen Zeile in jeder Spalte von Zeile angezeigt werden soll. Kann mir jemand den Fehler zeigen?

Um die Daten aus der Datenbank abrufen Ich habe 6 Funktionen in meinem Modell geschrieben. Sie sind fast gleich. Ich füge hier eine Modellfunktion hinzu.

In der Steuerung rufe ich diese Funktion durch den folgenden Code und dann wird übergeben, um wie folgt anzuzeigen. Alle 6 Funktionen haben dasselbe Muster. Also poste ich nur 1 von ihnen.

$name['c_list'] = $this->employee_model->get_c_names($c); 
$this->load->view('team_view',$name); 
+0

Wenn Sie uns zeigen, was in jedem dieser '$ _ _ list'-Arrays enthalten ist, kann Ihnen jemand helfen. Wenn wir nicht irgendwie im Dunkeln zu arbeiten, und alle erhalten Sie ** Vermutungen sind ** Ich denke, wir denken können, was in ihnen ist, aber es ist besser, wenn Sie uns tatsächlich – RiggsFolly

+0

sagen, ob diese Felder durch Abfragen der Datenbank erstellt werden, Sie könnte uns auch diesen Code zeigen, da es höchstwahrscheinlich die Lösung wäre, diesen Teil besser zu machen. – RiggsFolly

+0

@RiggsFolly Ich habe die Antwort aktualisiert. Überprüfen Sie bitte das. – Christeen

Antwort

0
<table class="table table-hover" > 
<thead> 
<tr> 
    <th scope="col" width="20%">Cameramen</th> 
    <th scope="col" width="30%">Camera Assistants</th> 
    <th scope="col" width="12%">Technical Assistants</th> 
    <th scope="col" width="20%">Setup Engineer</th> 
    <th scope="col" width="30%">Audio Operator</th> 
    <th scope="col" width="12%">Vision Operator</th> 
</tr> 
</thead> 


<tbody> 


    <?php 
    for($x = 0 ; $x < count($c_list) ; $x++){ 
     echo '<tr>'; 
      echo '<td>'. $c_list[$x] .'</td>'; 
      echo '<td>'. $ca_list[$x] .'</td>'; 
      echo '<td>'. $ta_list[$x] .'</td>'; 
      echo '<td>'. $se_list[$x] .'</td>'; 
      echo '<td>'. $ao_list[$x] .'</td>'; 
      echo '<td>'. $vo_list[$x] .'</td>'; 
     echo '</tr>'; 
    } 

    ?> 

     </tbody> 
    </table> 

Wenn alle Listen die gleiche Länge haben, ist dies eine Lösung.

+0

Es ist nicht in der gleichen Länge. trotzdem danke. – Christeen

1
<table class="table table-hover" > 
<thead> 
<tr> 
    <th scope="col" width="20%">Cameramen</th> 
    <th scope="col" width="30%">Camera Assistants</th> 
    <th scope="col" width="12%">Technical Assistants</th> 
    <th scope="col" width="20%">Setup Engineer</th> 
    <th scope="col" width="30%">Audio Operator</th> 
    <th scope="col" width="12%">Vision Operator</th> 
</tr> 
</thead> 


<tbody> 


<?php 

// find the longest array 
$max = max(count($c_list), count($ca_list), count($ta_list), count($se_list), count($ao_list), count($vo_list)); 

for($x = 0 ; $x < $max ; $x++){ 
    echo '<tr>'; 
     echo '<td>'. (isset($c_list[$x])?$c_list[$x]:'') .'</td>'; 
     echo '<td>'. (isset($ca_list[$x])?$ca_list[$x]:'') .'</td>'; 
     echo '<td>'. (isset($ta_list[$x])?$ta_list[$x]:'') .'</td>'; 
     echo '<td>'. (isset($se_list[$x])?$se_list[$x]:'') .'</td>'; 
     echo '<td>'. (isset($ao_list[$x])?$ao_list[$x]:'') .'</td>'; 
     echo '<td>'. (isset($vo_list[$x])?$vo_list[$x]:'') .'</td>'; 
    echo '</tr>'; 
} 

?> 

    </tbody> 
</table> 

Diese Arbeit ist mit mehreren Längen Arrays.

Verwandte Themen