FabsH
I'm new here

Alle Werte aus einer Tabelle in Datenbank-Schemata ausgeben

Jump to solution

Hallo zusammen,

ich habe mir eine Tabelle für Veranstaltungen ("Aktuelles") angelegt. Über den Menüpunkt "Datenquellen" lässt sich diese Tabelle auch gut mit Daten befüllen. Nun möchte ich natürlich gerne die Inhalte auf einer Seite ausgeben lassen. Dazu habe ich die Absatzvorlage in meiner Seitenvorlage freigegeben.

Unter Datenbank-Schemata habe ich also ein neues Schema (ufh) mit einer Tabelle "Aktuelles" angelegt. Hier habe ich eine neue Tabellenvorlage (Aktuelles Übersicht bzw. ufh.aktuelles_uebersicht) erstellt. Leider klappt es nicht, dass alle Inhalte der Tabelle ausgegeben werden. Es wird lediglich der erste Eintrag ausgegeben.

Hier der Reiter "Eigenschaften"

eins.PNG

Reiter "Formular"

<CMS_MODULE>

  <CMS_INPUT_TEXT name="ct_title" hFill="yes" singleLine="no" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="Titel" description="Titel der Veranstaltung"/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

  <CMS_INPUT_TEXT name="ct_ort" hFill="yes" singleLine="no" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="Ort" description="Ort der Veranstaltung"/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

  <CMS_INPUT_TEXT name="ct_referent" hFill="yes" singleLine="no" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="ReferntIn" description="ReferentIn der Veranstaltung"/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

  <CMS_INPUT_DATE name="ct_datum" allowEmpty="yes" hFill="yes" preset="created" useLanguages="no">

    <LANGINFOS>

      <LANGINFO

        lang="*"

        label="Tag und Uhrzeit"

        description="Datum und Uhrzeit"

        format="'am' dd.MM.yyyy 'um' HH:mm"/>

    </LANGINFOS>

  </CMS_INPUT_DATE>

  <CMS_INPUT_TEXTAREA name="ct_beschreibung" hFill="yes" rows="7" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="Beschreibung" description="Kurze Beschreibung der Veranstaltung"/>

    </LANGINFOS>

  </CMS_INPUT_TEXTAREA>

</CMS_MODULE>

Reiter "Mapping"

zwei.PNG

Reiter "HTML"

<CMS_HEADER>

<CMS_FUNCTION name="contentSelect" resultname="result">

<CMS_PARAM name="schema" value="Aktuelles" />

<QUERY entityType="Aktuelles">

<NOTNULL attribute="titel"/>

</QUERY>

</CMS_FUNCTION>

</CMS_HEADER>

$CMS_FOR(element, result)$

$CMS_VALUE(#for.index)$<br>

<h2>$CMS_VALUE(element.titel)$</h2>

$CMS_END_FOR$

<h2>$CMS_VALUE(#row.titel)$</h2>

In die Seite habe ich die Vorlage eingefügt. Leider wird, wie gesagt, nur der erste Teil ausgegeben..

Vielen Dank schon mal!

Grüßle, Fabian

Labels (1)
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
FabsH
I'm new here

Re: Alle Werte aus einer Tabelle in Datenbank-Schemata ausgeben

Jump to solution

Gemeint war, dass nur der erste bzw. Datensatz angezeigt wird.

Allerdings habe ich mittlerweile die Lösung meines Problems gefunden:

Um alle Werte auszugeben, muss man das zuständige Datenbank-Schemata (pinker Bereich) zuerst in die entsprechende Seite (grüner Bereich) einbinden. In meinem Fall geschieht das ganz normal als Content-Element. Anschließend muss diese Seite aber noch in der Struktur (blauer Bereich) aufgehangen werden und unter dem Reiter Daten entsprechend konfiguriert werden (siehe Screenshot). In der Variant mit 0 und 1 werden dann alle Einträge ausgegeben. Umgekehrt (1 und 0) wohl nur einer, aber das teste ich heute genauer.

drei.PNG

Unter 2 (rote Markierung) kann eine vorkonfigurierte Abfrage (pinker Bereich -> Datenbank-Schemata -> Rechtsklick auf Schema -> Abfrage anlegen) genutzt werden, um die Ergebnismenge einzuschränken.

Die Gestaltung wird dann hauptsächlich über den HTML-Reiter der Tabellenvorlage definiert (in meinem Fall eine einfache Tabelle):

<CMS_HEADER>

</CMS_HEADER>

$CMS_IF(#cs.isFirstContentRow)$

     <table>

          <tr>

               <td>Titel</td>

               <td>Adresse</td>

               <td>Datum</td>

          </tr>

$CMS_END_IF$

<tr>

     <td>$CMS_VALUE(#row.titel)$</td>

     <td>$CMS_VALUE(#row.ort)$</td>

     <td>$CMS_VALUE(#row.datum)$

</tr>

$CMS_IF(#cs.isLastContentRow)$

</table>

$CMS_END_IF$

IFa

     s

Mit #row kann auf den aktuellen Eintrag zugegriffen werden (Doku #row). #cs steht nur in Tabellenvorlagen zur Verfügung und ähnelt #for in $CMS_FOR()$-Konstrukten (Doku #cs).

Ich hoffe, dass ich weiterhelfen konnte Smiley Happy

View solution in original post

0 Kudos
2 Replies
mbergmann
Crownpeak employee
Crownpeak employee

Re: Alle Werte aus einer Tabelle in Datenbank-Schemata ausgeben

Jump to solution

Hallo Fabian,

was meinst Du hier mit „nur der erste Teil?“ Heißt das, dass die Ausgabe über die ContentSelect-Schleife das gewünschte liefert, aber im unteren Teil über #row.titel nur die erste Überschrift kommt?

Viele Grüße

Michael

0 Kudos
FabsH
I'm new here

Re: Alle Werte aus einer Tabelle in Datenbank-Schemata ausgeben

Jump to solution

Gemeint war, dass nur der erste bzw. Datensatz angezeigt wird.

Allerdings habe ich mittlerweile die Lösung meines Problems gefunden:

Um alle Werte auszugeben, muss man das zuständige Datenbank-Schemata (pinker Bereich) zuerst in die entsprechende Seite (grüner Bereich) einbinden. In meinem Fall geschieht das ganz normal als Content-Element. Anschließend muss diese Seite aber noch in der Struktur (blauer Bereich) aufgehangen werden und unter dem Reiter Daten entsprechend konfiguriert werden (siehe Screenshot). In der Variant mit 0 und 1 werden dann alle Einträge ausgegeben. Umgekehrt (1 und 0) wohl nur einer, aber das teste ich heute genauer.

drei.PNG

Unter 2 (rote Markierung) kann eine vorkonfigurierte Abfrage (pinker Bereich -> Datenbank-Schemata -> Rechtsklick auf Schema -> Abfrage anlegen) genutzt werden, um die Ergebnismenge einzuschränken.

Die Gestaltung wird dann hauptsächlich über den HTML-Reiter der Tabellenvorlage definiert (in meinem Fall eine einfache Tabelle):

<CMS_HEADER>

</CMS_HEADER>

$CMS_IF(#cs.isFirstContentRow)$

     <table>

          <tr>

               <td>Titel</td>

               <td>Adresse</td>

               <td>Datum</td>

          </tr>

$CMS_END_IF$

<tr>

     <td>$CMS_VALUE(#row.titel)$</td>

     <td>$CMS_VALUE(#row.ort)$</td>

     <td>$CMS_VALUE(#row.datum)$

</tr>

$CMS_IF(#cs.isLastContentRow)$

</table>

$CMS_END_IF$

IFa

     s

Mit #row kann auf den aktuellen Eintrag zugegriffen werden (Doku #row). #cs steht nur in Tabellenvorlagen zur Verfügung und ähnelt #for in $CMS_FOR()$-Konstrukten (Doku #cs).

Ich hoffe, dass ich weiterhelfen konnte Smiley Happy

0 Kudos