Abfragen Ausgabe und Anfängerfragen

scalatore

Mitglied
Hallo,

ich mache mal zuerst die Tabellen, dann kann ich es besser erklären.

Code:
 Tabelle Überschrift 
ID_Ueber      Ueberschrift
1                 ueber1
2                 ueber2
3                 ueber3
4
...

Tabelle Teilüberschrift
ID_Teil              Teilüberschrift         ID_Ueber
1                      Teil 1                     1
2                      Teil 2                     1
3                      Teil 3                     1
4                      Teil 4                     2
5                      Teil 5                     2
6                      Teil 6                     3

...


Tabelle Text

ID_Text          Text               ID_Teil
1                    T1                 1
2                    T2                 1
3                    T3                 1
4                    T4                 2
5                    T5                 2
....


Wenn ich nun eine Abfrage mache bekomme ich die Überschriften und Teilüberschriften ja jedesmal dazu ich wollte das aber wie folgt ausgegeben haben


Code:
Überschrift1

Teilüberschrift1

T1
T2
T3

Teilüberschrift2

T4

Überschrift2

Teilüberschrift 3
T..
T..

Teilüberschrift4


usw.

Kann ich sowas irgendwie realisieren. Stimmen meine Tabellen so?
Wäre euch sehr dankbar wenn ihr mir helfen könntet.

Liebe Grüße
scalatore
 
Hallo,

Obwohl es mit einigem Aufwand auch direkt in SQL gehen kann (je nach RDBMS), sollte deine Anforderung eher in der Applikation umgesetzt werden (PHP ?...)

Damit denke ich es gibt zwei Möglichkeiten:

Erste Variante: Du joinst deine drei Tabellen auf der Datenbank (eine Query) und gibst jeweils die Überschrift, Teilüberschrift und den jeweilgen Text mit aus. Wenn ich Dich richtig verstanden habe, machst du das bereits. Wichtig ist, dass du hier in der Query nach der Überschrift, der Teilüberschrift und nach dem Text sortierst (nach den IDs denke ich).

Dann iterierst du in PHP oder wo auch immer über dein Resultset mit mysql_fetch_* o.ä.
Dann benötigst du zwei Variablen zum Zwischenspeichern der aktuellen Überschrift bzw. der Teilüberschrift.

Bau Dir eine Schleife und prüfe, ob die Überschrift die gleiche ist wie beim Vorgängerrecord (einfach merken). Wenn sie unterschiedlich ist, wird die Überschrift ausgegeben. Dann prüfst du ob die Teilüberschrift die gleiche wie beim Vorgänger ist - wenn nicht, wird sie ausgegeben. Zu guter Letzt gibst du dann einfach deine eigentlichen Texte aus usw.
Diese Technik wird auch bei gängien Reporting-Tools genutzt.

Die Zweite Variante würde pro Level jeweils mehrere Abfragen machen und den grössten Teil der "Join"-Logik im PHP machen. Diese Lösung würde ich aber nicht empfehlen.

Markus
 
Hallo Markus,

danke für die Antwort, ich habe es bislang jetzt so gelöst wie bei dir in der zweiten Variante auch beschrieben und es funktioniert auch, ist aber ein großer Aufwand, weil ich nicht nur eine Abfragen haben will sondern verschiedene Suchfelder haben möchte und jeweils dann eben mehrere Abfragen brauche.
Werde aber mal die erste Variante von Dir probieren.
Vielleicht müsste ich da nochmal auf Dich zurück kommen und nochmal fragen, hoffe das ist dann ok.

Liebe Grüße und nochmals vielen Dank
Scalatore
 

Neue Beiträge

Zurück