Phil: Tabelle mit Unterpunkten

Hallo,
ich möchte gerne eine MySql Abfrage durchführen, die mir erlaubt
eine Tabelle (PHP) mit Unterpunkten auszugeben.
Ein normaler Equi-Join mit Schleife reicht hier wohl nicht. Ich
möchte ja keine Tabelle, in der für jedes Buch eine Spalte mit
Titel, Kategorie und Standort angegeben wird.
Mir fehlt der Ansatz, über Hilfe währe ich froh.

Phil

--Beispiel--

Tabellen:

-Kategorie-
ID Kat Ort
-- --- ---
1 Bio Regal 1
2 Physik Regal 2
3 Chemie Regal 3

-Titel-
Kat Titel
-- ---
1 Bio Teil 1
1 Bio Teil 2
2 Newton
3 Biochemie

gewünschte Ausgabe (z.B mit (evtl. verschachtelten)Tabellen):

Bio
Standort: Regal 1
Titel:

  • Bio Teil 1
  • Bio Teil 2

Physik
Standort: Regal 2
Titel:

  • Newton

Chemie
Standort: Regal 3
Titel:

  • Biochemie
  1. Hallo

    ich möchte gerne eine MySql Abfrage durchführen, die mir erlaubt
    eine Tabelle (PHP) mit Unterpunkten auszugeben.

    Dein Problem hat herzlich wenig mit Datenbanken zu tun - höchstens, dass Du
    Dich besser mit relationalen Datenbanken beschäftigen könntest.

    Mir fehlt der Ansatz, über Hilfe währe ich froh.
    gewünschte Ausgabe (z.B mit (evtl. verschachtelten)Tabellen):

    Dein Suchstichwort lautet: Gruppenwechsel

    Bio
    Standort: Regal 1
    Titel:

    • Bio Teil 1
    • Bio Teil 2

    Freundliche Grüße

    Vinzenz

    1. Hello lieber Vinzenz,

      Dein Suchstichwort lautet: Gruppenwechsel

      Bio
      Standort: Regal 1
      Titel:

      • Bio Teil 1
      • Bio Teil 2

      Die Frage lautete aber übersetzt "Wie kann ich verhindern, dass für jede Zeile alle Kategoriedaten wieder mit übertragen werden müssen?"

      Es ging hier also

      Meine Idee dazu lautet:

      Mit _zwei_ Select-Statements.
        Das eine liefert nur die Groups mit ID, Klartext und sonstigen Eigenschaften
        Das zweite nur die Einträge mit der Group-ID und den Eigenschaften der Einträge

      Zusammenbau findet in der darstellenden Schicht statt.

      asort(array mit Einträgen über die Gruppen-ID)

      foreach (Gruppe) ->
        - foreach(Eintrag) -->
           <--
        <-

      Das reduziert die Datenmenge gewaltig.
      Die Sortierung der Einträge über ID_Gruppe und z.B. Klartext Eintrag  kann man auch schon die Datenbank machen lassen, sodass das script, das die Ausgabe veranlasst, schon vorgekaute Daten bekommt.

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

      1. Vielen Dank für eure Hilfe, vor allen an Tom,
        der schon einige meiner Fragen beantwortet hat.
        Das hilft mir schon mal viel weiter. Ich werde das
        morgen umsetzen und ggf noch mal posten.

        Phil

  2. Hi,

    du möchtest vielleicht das Pattern "Verkettete Liste" in einer relationalen Datenbank implementieren?

    Tabelle  Hierarchie
    ID  ParentID  Type         Name
    --------------------------------------------------------
    1   NULL      Kategorie    BIO
    2   1         Standort     Regal 1
    3   2         Titel        Bio Teil 1
    4   2         Titel        Bio Teil 2

    undsoweiter.

    In PHP kannst du dann eine rekursive Schleife über das Array von Datensätzen laufen lassen.

    Oder meintest du was ganz andreas?

    Ciao, Frank