baseportal
Suche: 
 Forum   Start 

loop (Schrittweises Durchlaufen einer Datenbank-Abfrage)

 
Trotz der vielen Einstellmöglichkeiten von do action=all oder do action=list werden Sie in vielen Fällen mit der standardisierten Ausgabeform nicht zufrieden sein: Sie möchten die Ausgabe jedes Feldes selbst bestimmen. loop ermöglicht dies, indem es durch alle Einträge einer Datenbank geht und Zeile für Zeile die einzelnen Felder als Variablen zur Verfügung stellt.

Definition:

<loop[Parameter]>
...[$Feldname]...
</loop>

Beispiel:

<b>Neueste Neuigkeiten:</b>

<loop db=news sort=->

<h3><a href="$URL">$Titel</a></h3>
<ul>$Text</ul>
<i>von $Autor</i>
<p>

</loop>

Dieses Beispiel könnte Teil eines Redaktionssystems sein: loop durchläuft alle Einträge der Datenbank news. Da kein Feld für die Sortierung angegeben wurde, erfolgt die Ausgabe chronologisch - allerdings in umgekehrter Reihenfolge, aufgrund des Minus-Zeichens (sort=-). Die neuesten Einträge kommen also ganz oben, was für ein News-System sicherlich wünschenswert ist.

Die Variablen mit dem vorangestellten "Dollar"-Zeichen $ entsprechen jeweils dem Namen eines Feldes, so wie sie bei der Datenbank-Definition vergeben wurden (Achtung auf Gross/Klein-Schreibung, diese wird unterschieden!). Wird ein Feldname verwendet, der nicht existiert, wird einfach nichts eingefügt.

Etwas komplizierter ist der Zugriff auf Felder, deren Namen nicht als Variablennamen verwendet werden können, z.B. Preis in $ oder Frage / Antwort. Wegen der Leerzeichen und den Sonderzeichen ($, bzw. /) ist eine direkte Abfrage nicht möglich. Stattdessen müssen Sie folgendes schreiben:

$_loop{"Preis in $"}
$_loop{"Frage / Antwort"}

Und so könnte die Ausgabe der News-Seite aussehen:

Neueste Neuigkeiten:

Loveparade fällt dieses Jahr aus... Für immer?

von Anja

Microsoft am Ende?

von Hans Albers

UFOs in Berlin gelandet!

von Stefan Ehrlich

(Achtung: Die Nachrichten sind nur Beispiele und NICHT real!! ;-)

do action=all und loop kombinieren

Manchmal möchte man die komfortablen Menüs des do action=all mit einer eigenen Ausgabe kombinieren. Das geht einfach mit dem Parameter listtype=-. Hier ein Beispiel, das die Blätter-Links vom do action=all erhält und trotzdem eine eigene Ausgabe ermöglicht:

<do action=all listtype=- selectbrowse=no>
<loop>
$Feld1 - $Feld2... etc.<br>
</loop>

Letzte Änderung am 23.9.2006, 06:50 - Stichworte: loop, Datenbank durchlaufen, do + loop

c - o - + 
© baseportal GmbH. Alle Rechte vorbehalten.


powered in 0.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!