2016-04-02 11 views
0

私は21の列を持つデータベーステーブルを持っており、それらをすべて表示したいので、テーブルを垂直に配置しようと決めました。Codeigniter - 行の代わりに列としてデータベースの結果を垂直に表示する方法

最初の列は「ヘッダー」で、各列はデータベースのデータ行を表示します。

|--------|------|------|------| 
| Title1 | row1 | row2 | row3 | 
|--------|------|------|------| 
| Title2 | row1 | row2 | row3 | 
|--------|------|------|------| 

等を考慮して

echo '<table>'; 
echo '<h2>Schemes</h2>'; 
foreach ($scheme->result() as $schemerow) 
{ 
echo '<tr><td class="app"><strong>Award&nbsp;1</td><td class="app">'.$schemerow->Description.'</td></tr>'; 
echo '<tr><td class="app"><strong>Award&nbsp;2</td><td class="app">'.$schemerow->Description.'</td></tr>'; 
echo '<tr><td class="app"><strong>Location</td><td class="app">'.$schemerow->LocationName.'</td></tr>'; 
echo '<tr><td class="app"><strong>Day</td><td class="app">'.$schemerow->DayName.'</td></tr>'; 

など

これは私の前以下各行に一つの長いテーブルを与えます。

Screenshot of result

しかし、私は最初のものなどの右側にある2番目の行を取得する方法を考え出すことはできませんか?

答えて

1

は私がCodeIgniterのとfimilarないことだし、次はresult()機能を実現することができるかどうかわかりません。しかしresult_array()の配列に結果をフェッチすることは、あなたがその配列をtransponseすることができるはずです。

$transposedArray = array(); 
foreach ($scheme->result_array() as $schemerow) 
{ 
    foreach ($schemerow as $columnName => $value) 
    { 
     $transposedArray[$columnName][] = $value; 
    } 
} 

とそれすると出力:ポールへ

foreach ($transposedArray as $header => $values) 
{ 
    echo '<tr>'; 
    echo "<td class='header'>{$header}</td>"; 
    foreach ($values as $value) 
    { 
     echo "<td class='value'>{$value}</td>"; 
    } 
    echo '</tr>'; 
} 

または

// column1 in a row 
echo '<tr>'; 
echo "<td class='header'>Readable Column Name1</td>"; 
foreach ($transposedArray['columnName1'] as $value) 
{ 
    echo "<td class='value'>{$value}</td>"; 
} 
echo '</tr>'; 

// column2 in a row 
echo '<tr>'; 
echo "<td class='header'>Readable Column Name2</td>"; 
foreach ($transposedArray['columnName1'] as $value) 
{ 
    echo "<td class='value'>{$value}</td>"; 
} 
echo '</tr>'; 

// column3 in a row 
... 
0

ありがとう私にそれをする方法を与えたシュピーゲル。

それは:)

ビュー

echo '<table>'; 
echo '<h2>Schemes</h2>'; 
$transposedArray = array(); 
foreach ($mscheme->result_array() as $mschemerow) 
{ 
    foreach ($mschemerow as $columnName => $value) 
    { 
     $transposedArray[$columnName][] = $value; 
    } 
$value = form_open(base_url().'index.php/swim/mscheme_edit/'.$mschemerow['MainSchemeID']).form_submit('submit', 'Edit').form_close(); 
$transposedArray['Edit'][] = $value; 
} 
foreach ($transposedArray as $header => $values) 
{ 
    if($header == 'LocationName' || $header == 'Season' || $header == 'Award 1' || $header == 'Award 2' || $header == 'DayName' || $header == 'Week 1' || $header == 'Week 2' || $header == 'Week 3' || $header == 'Week 4' || $header == 'Week 5' || $header == 'Week 6' || $header == 'Week 7' || $header == 'Week 8' || $header == 'Week 9' || $header == 'Week 10' || $header == 'Week 11' || $header == 'Week 12' || $header == 'Week 13' || $header == 'Week 14' || $header == 'Week 15' || $header == 'Edit') 
    { 
     switch($header) 
     { 
      case 'LocationName': 
       $header = 'Location'; 
       break; 
       case 'Season': 
       $header = 'Term'; 
       break; 
      case 'DayName': 
       $header = 'Day'; 
       break; 
      } 
    echo '<tr>'; 
    echo "<td class='app'><b>{$header}</b></td>"; 
    foreach ($values as $value) 
    { 
     echo "<td class='app'>{$value}</td>"; 
    } 
    echo '</tr>'; 
    } 
} 
echo '</table>'; 

モデル

public function CRUD_read_mschemes() 
    { 
     return $this->db->select('*, p.Description AS Award 1, q.Description AS Award 2, a.MSchemeShort AS Week 1, b.MSchemeShort AS Week 2, c.MSchemeShort AS Week 3, d.MSchemeShort AS Week 4, e.MSchemeShort AS Week 5, f.MSchemeShort AS Week 6, g.MSchemeShort AS Week 7, h.MSchemeShort AS Week 8, i.MSchemeShort AS Week 9, j.MSchemeShort AS Week 10, k.MSchemeShort AS Week 11, l.MSchemeShort AS Week 12, m.MSchemeShort AS Week 13, n.MSchemeShort AS Week 14, o.MSchemeShort AS Week 15') 
      ->from('schemesmain') 
      ->join('schemesmaindetail AS a', 'MWeek1 = a.MSchemeID') 
      ->join('schemesmaindetail AS b', 'MWeek2 = b.MSchemeID') 
      ->join('schemesmaindetail AS c', 'MWeek3 = c.MSchemeID') 
      ->join('schemesmaindetail AS d', 'MWeek4 = d.MSchemeID') 
      ->join('schemesmaindetail AS e', 'MWeek5 = e.MSchemeID') 
      ->join('schemesmaindetail AS f', 'MWeek6 = f.MSchemeID') 
      ->join('schemesmaindetail AS g', 'MWeek7 = g.MSchemeID') 
      ->join('schemesmaindetail AS h', 'MWeek8 = h.MSchemeID') 
      ->join('schemesmaindetail AS i', 'MWeek9 = i.MSchemeID') 
      ->join('schemesmaindetail AS j', 'MWeek10 = j.MSchemeID') 
      ->join('schemesmaindetail AS k', 'MWeek11 = k.MSchemeID') 
      ->join('schemesmaindetail AS l', 'MWeek12 = l.MSchemeID') 
      ->join('schemesmaindetail AS m', 'MWeek13 = m.MSchemeID') 
      ->join('schemesmaindetail AS n', 'MWeek14 = n.MSchemeID') 
      ->join('schemesmaindetail AS o', 'MWeek15 = o.MSchemeID') 
      ->join('location', 'LocationsID = MSchemeLocationID') 
      ->join('termseason', 'SeasonsID = MSchemeSeasonID') 
      ->join('awards AS p', 'MSchemeAwardsID1 = p.AwardID') 
      ->join('awards AS q', 'MSchemeAwardsID2 = q.AwardID') 
      ->join('days', 'DaysID = MSchemeDayID') 
     ->get(); 
    } 

の検索結果を片付け Result

の多くを必要としなかった

関連する問題