phpbar.de logo

Mailinglisten-Archive

[php] Kreuztabelle aus 2 DB-Tables

[php] Kreuztabelle aus 2 DB-Tables

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mon Mar 1 16:14:25 CET 2004


Hi Christian,


Zitat von Christian Vosen:

> Ich möchte eine Terminübersicht in einer großen Kreuztabelle erstellen,
> wobei die Termine (ca.40, Zeilen) zu bestimmten Kategorien (insg. 4
> Spalten) gehören. Die Termine kommen aus einer MySQL-Tabelle, die über
> eine ID mit der Kategorietabelle verknüpft ist. Es kann vorkommen, dass
> sich Termine in mehreren Kategorien überschneiden.
> Beispiel:
>
> |Termin|Kat.1|Kat.2|Kat.3|Kat.4|
> --------------------------------
> |Datum1|  x  |     |     |  x  |
> |Datum2|     |  x  |     |     |
> |Datum3|     |  x  |  x  |  x  |
> |Datum4|     |     |     |  x  |
> --------------------------------
>
> Wie lese ich jetzt sinnvoll die Werte aus der Datenbank mit PHP aus, um
> mir nachher in HTML eine schöne Tabelle anzeigen zu lassen? Ich könnte
> zwar per IF-Abfrage jeden erdenklichen Fall abfragen, aber da muss es
> doch etwas Eleganteres geben. Wäre für Anregungen dankbar, stehe im
> Moment ein wenig auf dem Schlauch.

Wie sehen Deine Tabellen denn genau aus? Fuer den Teil unter der Kopfzeile
darunter ginge z.B. ein

Select datum, kategorieID from termine order by datum, kategorieID

und dann durchlaeufst Du die Datensaetze in einer Schleife.

Am Anfang und, wenn das Datum gegenueber dem vorherigen Datensatz wechselt,
faengst Du eine neue HTML-Tabellenzeile an und setzt das Datum in die erste
Zelle (vertikale Laufrichtung).

Solange das Datum gleichbleibt, laeufst Du fuer alle Kategorien von links nach
rechts durch und guckst, ob Du zu der jeweiligen Kategorie einen passenden
Datumsdatensatz hast (horizontale Laufrichtung). Wenn ja, machst Du eine
Markierung in die HTML-Tabellenzelle. :-)

Usw. So in etwa koennte es aussehen, wenn ich Dich richtig verstanden habe.
Vielleicht kannst Du noch etwas mehr Informationen geben.


Viele Gruesse

Lutz

php::bar PHP Wiki   -   Listenarchive