2016-11-18 3 views
3

Ich habe Schwierigkeiten, eine Tabelle aus der Joomla-Datenbank zu erstellen. Zurzeit verwende ich den folgenden Code:Erstellen einer HTML-Tabelle basierend auf vertauschten Joomla-Daten

$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>"; 

Grundsätzlich funktioniert dieser Code gut. Das Ergebnis ist:

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

Allerdings möchte ich eine HTML-Tabelle erstellen, die die Daten transponiert und zeigt es wie die folgende Form:

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

Nachdem in diesem Forum und Google-Suche, wasn I‘ Ich kann nichts Ähnliches finden. Kann mir jemand mit einem bestimmten Code helfen?

Antwort

1

einige PHP-Array-Funktionen verwenden, können Sie dies nehmen:

$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

Dank! Der Code gab mir den nötigen Impuls! Ich transformierte das Abfrageergebnis in eine Matrix und änderte Zeilen und Spalten, während es in eine Tabelle eingelesen wurde. Danke vielmals! – Atexo

Verwandte Themen