• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

HTML-Tabelle von oben nach unten befüllen

Gilles

Blogger
Hallo Zusammen,
Ich hab ein Problem beim dynamischen erstellen einer Tabelle.
Normalerweise erstelle ich Tabellen Daten immer Reihe für Reihe, da HTML es ja auch so vorgibt

<tr> in den Zeilen "springen"
<td>/<th> in den Spalten "springen"

Nun soll ich aber eine Tabelle erstellen, die wie die in meinem Anhang aussehen soll.

tabelle_beispiel.jpg

Ich habe mich schon vorhin verrückt probiert mit Schleifen und Arrays, bin aber nicht auf das richtige Ergebnis gekommen. Vielleicht kennt einer von euch da einen Kniff. Wäre dankbar für jeden Hinweis.

Interessant ist vielelicht noch wie mein Daten-Array zur Zeit aussieht

$daten[numerisch][feldname]

Das folgende Beispiel würde von ersten Datensatz die Einnahme ausgeben (also 50)
PHP:
echo $daten[0]['einnahme'];
Vielen dank schonmal für jeden Hinweis :)
 
Grob zum Beispiel so:

PHP:
<?php

$data = array(
    array(
        'datum'    => '2009-04-12',
        'einnahme' => 50,
        'verlust'  => 16,
        'gewinn'   => 34
    ),
    array(
        'datum'    => '2009-04-13',
        'einnahme' => 52,
        'verlust'  => 26,
        'gewinn'   => 26
    ),
    array(
        'datum'    => '2009-04-14',
        'einnahme' => 44,
        'verlust'  => 6,
        'gewinn'   => 38
    )
);

?>

<table border="1">
    <tr>
        <th>&nbsp;</th>
        <?php foreach ($data as $item): ?>
            <th><?php echo htmlspecialchars($item['datum']); ?></th>
        <?php endforeach; ?>
    </tr>

    <?php foreach (array('einnahme', 'verlust', 'gewinn') as $field): ?>
        <tr>
            <td><?php echo htmlspecialchars($field); ?></td>

            <?php foreach ($data as $item): ?>

                <td><?php echo htmlspecialchars($item[$field]); ?></td>

            <?php endforeach; ?>
        </tr>
    <?php endforeach; ?>
</table>
 
Da sag ich vielen herzlichen Dank :)
Meins sah wesentlich verwurschtelter aus :D
Ich werde es dann heute abend mal testen und mich dann noch mal melden.
Und wie schon erwähnt. Danke für die Lösung
 
Zurück
Oben