Seite 1 von 1

Tabelle auslesen und in Tage gliedern

Verfasst: 20.08.2004 11:56
von exweised
Hallo,

ich habe in einer Datenbank eine Tabelle, wo Informationen gegliedert nach Datum stehen. So weit so gut. :D Die Tabelle wird mir auch schön so ausgelesen, wie sie in der Datenbank steht. Der PHP-Code sieht so aus:

Code: Alles auswählen

<table border="1" cellpadding="3" cellspacing="0">
<?php

while( $result = @mysql_fetch_array($select) )
{
	echo "<tr><td>" . $result['text'] . "</td></tr>";
}

?>
</table>
In der Datenbanktabelle gibt es zu jedem Eintrag auch noch ein Datum, welches aber nicht zu jeder Spalte angezeigt werden soll, sondern jeweils über der Gruppe stehen soll.

Beispiel:

Einträge in der Datenbank:

[date] | [text]
20.08.2004 | hallo du
20.08.2004 | hallo ihr
20.08.2004 | hallo sie
19.08.2004 | guten morgen
19.08.2004 | guten tag
18.08.2004 | blau
18.08.2004 | gelb
18.08.2004 | rot

Angezeigt in HTML-Code soll das dann so aussehen:

Code: Alles auswählen

<tr><td>20.08.2004</td></tr>
<tr><td>hallo du</td></tr>
<tr><td>hallo ihr</td></tr>
<tr><td>hallo sie</td></tr>
<tr><td>19.08.2004</td></tr>
<tr><td>guten morgen</td></tr>
<tr><td>guten tag</td></tr>
<tr><td>18.08.2004</td></tr>
<tr><td>blau</td></tr>
<tr><td>gelb</td></tr>
<tr><td>rot</td></tr>
Ich habe jetzt schon einige Varianten durch, das endlich hinzu bekommen. Ich bin aber immer gescheitert. Leider ist es mir nicht möglich die Tabelle anders anzuordnen, weil dan funktionieren andere Scripte nicht die da was hinein schreiben sollen. Ich hoffe, ihr könnt mir helfen.

Verfasst: 20.08.2004 12:19
von Lord Potassium
füge in die tabelle eine spalte datum_id ein und dann erstelle eine neue tabelle "datum" mit den spalten:
id datum datum_id
wobei id primary key ist und datum_id ebenfalls ein key ist.

Verfasst: 20.08.2004 14:04
von exweised
Hmm, nur mit der vorhandenen Tabelle, ohne jeglicher neue Änderung daran, geht das nicht? :-?

Also, bei der Tabelle ist ganz vorne auch eine ID mit auto_increment schon vorhanden.

Verfasst: 20.08.2004 14:20
von Lord Potassium
exweised hat geschrieben:Hmm, nur mit der vorhandenen Tabelle, ohne jeglicher neue Änderung daran, geht das nicht? :-?

Also, bei der Tabelle ist ganz vorne auch eine ID mit auto_increment schon vorhanden.
wieso kannst du bei der tabelle keine feld hinzufügen? das müsste doch egal sein,......

Verfasst: 20.08.2004 14:33
von exweised
Hmm, mir macht diese zusätzliche Tabelle sorgen. Meine Beispieltabelle ist eine von 14. Wenn ich jetzt noch zusätzlich 14 Datumstabellen brauche, lasse ich meine Idee lieber. Da ist der Aufwand wieder mehr, als sein nutzen.

Verfasst: 20.08.2004 14:40
von Lord Potassium
exweised hat geschrieben:Hmm, mir macht diese zusätzliche Tabelle sorgen. Meine Beispieltabelle ist eine von 14. Wenn ich jetzt noch zusätzlich 14 Datumstabellen brauche, lasse ich meine Idee lieber. Da ist der Aufwand wieder mehr, als sein nutzen.
WTF redest du?
du sollst EINE neue tabelle anlegen
in der folgende spalten zu finden sind

ID | datum | datum_id

ID = primary key und auto_inrecment
datum_id = key 2

und in deiner anderen tabelle (die mit den einträgen) fügst du eine SPALTE hinzu die datum_id heißt.
und in der steht dann immmer die id des datums, dass es in der neuen tabellen bekommen hat.
check?

Verfasst: 20.08.2004 14:41
von k-5
hm .. ne reine sql lösung find ich jetzt in dem fall weng overkill (wüsst auch ehrlich gesagt nicht wie ich die machen sollte .. außer mit der baumstruktur meines vorredners) ..

wieso nicht den standard .. (datum sortiert)
und dann einfach in der schleife testen ob sich das datum geändert hat ? .. wenn ja datum ausgeben ..
der code wird keinen schönheitspreis gewinnen .. ist aber durchaus funktional ..

Verfasst: 20.08.2004 18:58
von Blutgerinsel
k-5 hat geschrieben:hm .. ne reine sql lösung find ich jetzt in dem fall weng overkill (wüsst auch ehrlich gesagt nicht wie ich die machen sollte .. außer mit der baumstruktur meines vorredners)
Allerdings macht es wenig Sinn auf reiner MySQL Basis
Den Wert temporär vorbehalten macht mehr Sinn.

Und frisst wohl am wenigsten Performance als u.A. Kombinationen mit Union......

Verfasst: 20.08.2004 19:11
von k-5
sagt "overkill" das etwa nicht aus ? ..