Tabelle auslesen und in Tage gliedern

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
exweised
Mitglied
Beiträge: 123
Registriert: 22.05.2004 17:28

Tabelle auslesen und in Tage gliedern

Beitrag 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.
Benutzeravatar
Lord Potassium
Mitglied
Beiträge: 91
Registriert: 09.02.2004 11:15
Wohnort: Wien

Beitrag 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.
Dosis venenum facit
Phillipus Aureolus Theophrastus Bombastus von Hohenheim
http://www.debattierclub.at |http://www.kalium.org
exweised
Mitglied
Beiträge: 123
Registriert: 22.05.2004 17:28

Beitrag 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.
Benutzeravatar
Lord Potassium
Mitglied
Beiträge: 91
Registriert: 09.02.2004 11:15
Wohnort: Wien

Beitrag 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,......
Dosis venenum facit
Phillipus Aureolus Theophrastus Bombastus von Hohenheim
http://www.debattierclub.at |http://www.kalium.org
exweised
Mitglied
Beiträge: 123
Registriert: 22.05.2004 17:28

Beitrag 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.
Benutzeravatar
Lord Potassium
Mitglied
Beiträge: 91
Registriert: 09.02.2004 11:15
Wohnort: Wien

Beitrag 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?
Dosis venenum facit
Phillipus Aureolus Theophrastus Bombastus von Hohenheim
http://www.debattierclub.at |http://www.kalium.org
Benutzeravatar
k-5
Mitglied
Beiträge: 166
Registriert: 05.06.2003 23:21
Wohnort: soa kaff
Kontaktdaten:

Beitrag 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 ..
ich will mein auto polieren ! ..

ja .. ich weiß .. man kann das mit nem lappen machen .. aber ICH will unbedingt nen hammer nehmen .. WIE geht das :)
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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......
Benutzeravatar
k-5
Mitglied
Beiträge: 166
Registriert: 05.06.2003 23:21
Wohnort: soa kaff
Kontaktdaten:

Beitrag von k-5 »

sagt "overkill" das etwa nicht aus ? ..
ich will mein auto polieren ! ..

ja .. ich weiß .. man kann das mit nem lappen machen .. aber ICH will unbedingt nen hammer nehmen .. WIE geht das :)
Antworten

Zurück zu „Coding & Technik“