2016-11-10 9 views
4

私はcodeigniterを使用しています。私はデータベースによって取り出されたデータを私のビューに渡します。リストには5つのリストがあります。各カラムには、ビュー内のforeachループによって生成された名前のリストが含まれている必要があります。以下は私のコードです。データベースによって取り出されたデータを、foreachを使用してHTMLテーブルに配置します。

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

ただし、次のようになります。

enter image description here

私は、各列のラインで名前の行を表示したいです。誰も私にエラーを表示することはできますか?

データベースからデータを取得するには、モデルに6つの関数を書きました。彼らはほとんど同じです。モデル関数をここに1つ追加します。

public function get_c_names($c) 
{ 
    $cdata = array(); 
    foreach($c as $row) { 
     $cdata[] = $row->employee_id; 
    } 

    $this->db->select('employee.name'); 
    $this->db->from('employee'); 
    $this->db->where('employee.id IN ('.implode(", ",$cdata).')'); 
    $query=$this->db->get(); 
    return $query->result(); 
} 

コントローラでは、この関数を次のコードで呼び出して、次のように表示します。 6つの関数はすべて同じパターンです。だから私はそれらのうちの1つだけを投稿する。

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

これらの '$ ?? _ list'配列のそれぞれに何が表示されたら、誰かがあなたを助けることができるかもしれません。もし私たちが暗闇の中で仕事をしているとすれば、あなたが得ることは**推測**です。実際に私たちに教えれば、その中に何があるかを推測できます。 – RiggsFolly

+0

データベースを照会してこれらの配列を構築すると、そのコードを私たちに示すこともできます。解決策はより良い方法でその部分を行うことです。 – RiggsFolly

+0

@RiggsFolly私は答えを更新しました。これをチェックしてください。 – Christeen

答えて

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> 

すべてのリストは、同じ長さを持っている場合、これは解決策です。

+0

同じ長さではありません。とりあえずありがとう。 – 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> 

この作品は複数の長さの配列です。

関連する問題