2016-11-18 12 views
3

私はjoomlaデータベースで作成されたテーブルを作成するのに苦労しています。現在、私は次のコードを使用しています:転置されたJoomlaデータに基づいてhtmlテーブルを作成する

$query= "SELECT DATUM, A , B ,C, D, E, F, G FROM ".$db->quoteName('#__XYZTABLE'). " WHERE DATUM_ENG>= CURDATE()"; 
$db->setQuery($query); 
$results = $db -> loadObjectList(); 
    echo "<table><tr><th>Name</th><th>Department</th></tr>"; 

foreach($results as $row){ 

echo "<tr>"; echo "<td>".$row->last_name."</td>"; 

echo "<td>".$row->dept."</td>"; 

echo "</tr>"; } 

echo "</table>"; 

基本的に、このコードは正常に動作します。結果は次のとおりです。

DATUM , A , B ,C, D, E, F, G 
xxxx1 ,aa1,bb1,cc1,dd1,ee1,ff1,gg1 
xxxx2 ,aa2,bb2,cc2,dd2,ee2,ff2,gg2 
.... 

しかし、私はデータを転置し、次の形式のようにそれを表示するHTMLテーブルを作成するとします。このフォーラムとGoogleで検索した後

xxxx1 , xxxx2, xxxx3 .... 
A aa1 , aa2 , aa3 
B bb1 , bb2 ,bb3 
C cc1 , cc2 ,cc3 
D ..... 

を、私は「wasn類似のものを見つけることはできません。誰かが特定のコードで私を助けることができますか?

答えて

1

いくつかのPHPの配列関数を使用して、これを取ることがあります。

$object = new stdClass(); 
// create some test values 
$object->DATUM = '2016120'; 
$object->A = 'aa'; 
$object->B = 'bb'; 
$object->C = 'cc'; 
$object->D = 'dd'; 
$object->E = 'ee'; 
$object->F = 'ff'; 
$object->G = 'gg'; 

for ($i = 1; $i < 10; $i++){ 
    $vars = get_object_vars($object); 
    $obj = new stdClass; 
    foreach ($vars as $key=>$var){ 
     $obj->$key = $var.$i; 
    } 
    $results[] = $obj; 
} 
// end of creating test values 

echo "<table><tr><th>DATUM</th><th>A</th><th>B</th><th>C</th><th>D</th></tr>"; 

foreach ($results as $row) { 
    echo "<tr>"; 
    echo "<td>" . $row->DATUM . "</td>"; 
    echo "<td>" . $row->A . "</td>"; 
    echo "<td>" . $row->B . "</td>"; 
    echo "<td>" . $row->C . "</td>"; 
    echo "<td>" . $row->D . "</td>"; 
    echo "<td>" . $row->E . "</td>"; 
    echo "<td>" . $row->F . "</td>"; 
    echo "<td>" . $row->G . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 

echo '<h3>New Variant</h3>'; 
echo '<table>'; 
$elements = count($results); 
foreach (get_object_vars($results[0]) as $key=>$var){ 
    echo '<tr>'; 
    $tag = ($key === 'DATUM') ? 'th>' : 'td>'; 
    echo '<'.$tag . $key .'</'.$tag; 
    for ($i = 0; $i < $elements; $i++){ 
     echo '<'.$tag . $results[$i]->$key.'</'.$tag; 
    } 
    echo '</tr>'; 
} 
echo '</table>';` 
+0

感謝を!コードは私に必要な衝動を与えました!クエリ結果を行列に変換し、行と列を変更してテーブルに読み込みました。どうもありがとう! – Atexo

関連する問題