---
title: "Inhalte verschachtelt ausgeben"
url: "https://www.typo3.net/d/62482-inhalte-verschachtelt-ausgeben"
source: "typo3.net"
tags: ["TYPO3","TypoScript","Datenbank","Frage"]
created: "2007-05-14"
last_reply: "2007-09-06"
replies: 3
solved: false
page: 1
pages: 1
lang: "de"
---

# Inhalte verschachtelt ausgeben

TYPO3 › TypoScript · 3 Antworten · gestartet 2007-05-14

## Eröffnungsbeitrag

**martin_md** · 2007-05-14 · [Beitrag #1](https://www.typo3.net/d/62482-inhalte-verschachtelt-ausgeben/1)

Hallo,

ich möchte Content ausgeben, dessen Feld jeweils bei einer weiteren Abfrage verwendet werden soll.

In MYSQL sähe das so aus:

> SELECT uid_tabelle1, * FROM tabelle1

wobei für jedes einzelne Ergebnis die weitere Abfrage

> SELECT * FROM tabelle2 WHERE uid=uid_tabelle1

Eine JOIN-Abfrage kommt aus bestimmten Gründen nicht in Frage. Deshalb meine Frage: Wie bekomme ich das uid-Ergebnis der ersten Abfrage in die zweite Select-Abfrage hinein. Geht das in irgendeiner Form zum Beispiel mit...

```typoscript
.where = uid = {tx_blablabla:uid}
```

Außerdem: Wie wäre es bei einer weiteren Verschachtelung?

????

Danke und Gruß
Martin

## Antworten

### [#2](https://www.typo3.net/d/62482-inhalte-verschachtelt-ausgeben/2) · algiz · 2007-05-24

Wie wär's mit folgendem?

```typoscript
temp.content = CONTENT
temp.content {
    table = tt_content
    pidInList = this
    select.where = (NOT hidden) AND (NOT deleted)
    renderObj = COA
    renderObj {
        10 = LOAD_REGISTER
        10.contentUID.field = uid
        20 = CONTENT
        20 {
            table = tx_blablabla
            select.andWhere {
                data = register:contentUID
                wrap = uid=|
            }
            renderObj = TEXT
            renderObj.field = title
        }
        30 = RESTORE_REGISTER
    }
}
```

Das Wichtige dabei steht ab Zeile 8: Mit *LOAD_REGISTER* den Inhalt des Feldes aus tt_content speichern und bei der nächsten select-Anweisung *andWhere* verwenden, da es praktischerweise vom Typ *stdWrap* ist.

Da ich den Code nicht getestet habe, könnte es sein, dass *RESTORE_REGISTER* in Zeile 20 nicht ausreicht und Zeile 9 folgendermaßen aussehen muss:

```typoscript
[...]
        10.contentUID.override.field = uid
[...]
```

Ich hoffe, es hilft dir.

### [#3](https://www.typo3.net/d/62482-inhalte-verschachtelt-ausgeben/3) · martin_md · 2007-08-22

> **algiz schrieb:**
>
> Wie wär's mit folgendem?

Hallo,

soweit vielen Dank. Ich habe mal was versucht, aber das macht mich immer noch kirre.

tx_einsatz_einsaetze - "Haupttabelle"
tx_einsatz_fahrzeuge - Fahrzeugtabelle (u. a. mit den Feldern Einheit, Fahrzeug)
tx_einsatz_einsaetze_einsatzmittel_mm - Verknüpfungstabelle

zur Tabelle tx_einsatz_einsaetze gibt es über die mm-Tabelle mehrere Zuordnung von Fahrzeugen

Bei der Ausgabe sollen immer zuerst die Einheiten und dann die zugehörigen Fahrzeuge ausgegeben werden:

Einheit 1: Fz 1, Fz3, Fz5
Einheit 2: Fz3, Fz 4   und so weiter

Hier mein TypoScript-Versuch, der sicherlich nicht programmiertechnisch ganz astrein ist:

```typoscript
t = COA
t.10 = TEXT
t.10.field = uid
t.10.wrap = <br><br><b>Einsatz Nr. | </b>
[...] weitere Ausgaben

t.40 = LOAD_REGISTER
t.40.einsatznr.override.field = uid

t.50 = CONTENT
t.50.table = tx_einsatz_fahrzeuge

t.50.select.pidInList = 15
t.50.select.leftjoin = tx_einsatz_einsaetze_einsatzmittel_mm ON tx_einsatz_einsaetze_einsatzmittel_mm.uid_foreign=tx_einsatz_fahrzeuge.uid
t.50.select.andWhere.data = register:einsatznr
t.50.select.andWhere.wrap = tx_einsatz_einsaetze_einsatzmittel_mm.uid_local = |
t.50.select.selectFields = *, MIN(tx_einsatz_einsaetze_einsatzmittel_mm.sorting) AS sort
t.50.select.groupBy = tx_einsatz_fahrzeuge.einheit
t.50.select.orderBy = sort       #Sortierung

t.50.renderObj = COA
t.50.renderObj.1 = LOAD_REGISTER
t.50.renderObj.1.einheit.field = einheit


t.50.renderObj.10 = TEXT
t.50.renderObj.10.field = einheit
t.50.renderObj.10.wrap = <br>Einheit: |
#nur die Einheiten ausgeben


#und hier der Knackpunkt: zu jeder Einheit noch ein Mal die einzelnen Fahrzeuge ausgeben - funktioniert nicht.
t.50.renderObj.20 = CONTENT
t.50.renderObj.20.wrap = Fahrzeuge: |

t.50.renderObj.20.table = tx_einsatz_fahrzeuge
t.50.renderObj.20.select.pidInList = 15
t.50.renderObj.20.select.leftjoin = tx_einsatz_einsaetze_einsatzmittel_mm ON (tx_einsatz_einsaetze_einsatzmittel_mm.uid_foreign=tx_einsatz_fahrzeuge.uid)
t.50.renderObj.20.select.andWhere.dataWrap =  uid_local = {register:einsatznr} AND einheit = '{register:einheit}'

t.50.renderObj.20.renderObj.21 = TEXT
t.50.renderObj.20.renderObj.21.value = <br>uid_local = {register:einsatznr} AND einheit = '{register:einheit}'
t.50.renderObj.20.renderObj.21.insertData = 1


t.50.renderObj.20.renderObj = COA
t.50.renderObj.20.renderObj.10 = TEXT
t.50.renderObj.20.renderObj.10.field = fahrzeugbezeichnung
t.50.renderObj.20.renderObj.10.wrap = <br>|
```

Wenn ich die Abfrage bewusst mit einem Fehler versehe, bekomme ich in der Fehlermeldung eine astreine SQL-Abfrage, mit der das gewünschte Ergebnis geliefert wird...

**SELECT fehlerprovokation
FROM tx_einsatz_fahrzeuge LEFT OUTER JOIN tx_einsatz_einsaetze_einsatzmittel_mm ON (tx_einsatz_einsaetze_einsatzmittel_mm.uid_foreign=tx_einsatz_fahrzeuge.uid)
WHERE tx_einsatz_fahrzeuge.pid IN (15) AND uid_local = 31 AND einheit = 'Einheit 1' AND tx_einsatz_fahrzeuge.deleted=0**

Trotzdem funktioniert hier was nicht... kann mir jemand weiter helfen?

### [#4](https://www.typo3.net/d/62482-inhalte-verschachtelt-ausgeben/4) · martin_md · 2007-09-06

> **martin_md schrieb:**
>
> Trotzdem funktioniert hier was nicht... kann mir jemand weiter helfen?

Ich bin der Ursache einen Schritt näher: Bei mehreren Datensätzen einer Gruppe scheint immer der erste nicht angezeigt zu werden.

Kann mir denn keiner weiterhelfen?

---

Quelle: „Inhalte verschachtelt ausgeben“, typo3.net, https://www.typo3.net/d/62482-inhalte-verschachtelt-ausgeben
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
