get / get_next - Datenbank abfragen |
Definition:
Alle Felder sind optional. Ohne irgendeine Angabe werden die per URL übergebenen Parameter genommen, fehlen auch diese, wird die Datenbank mit dem gleichen Namen der Seite komplett gelesen. Wird nur ein Parameter übergeben, wird die komplette Datenbank mit diesem Namen geholt.
Der erste passende Eintrag wird in Variablen, mit den entsprechenden Feldnamen, gespeichert (wie bei loop, allerdings ohne dass die Werte gefiltert werden).
Beispiele:
get "KundenNr==32631", "adressen"; out "Name: $Name, Ort: $Ort, Telefon: $Telefon";
Holt alle Datensätze bei denen "KundenNr" den Wert "32631" hat aus der Datenbank "adressen" und gibt den ersten davon aus.
get "Vorname==hans Alter<30 PLZ~=8", "kunden";
Holt alle Kunden mit dem Vornamen "hans", einem Alter unter 30 und aus dem Postleitzahlengebiet mit führender "8".
Es kann passieren, dass man Zeichen zur Abfrage benutzen will, die eine spezielle Bedeutung haben, wie das Leerzeichen zur Trennung von Abfragen oder das |-Zeichen, was für eine Oder-Verknüpfung steht. Diese kann man entweder mit dem \ "entschärfen" oder die zweite Form von get benutzen:
get ["Name", "==!", "Stefan Klamm", "&", "URL", "==", $URL], "zugriffe";
Holt alle Einträge mit "Name" genau "Stefan Klamm" und "URL" gleich der Variablen $URL. Diese kann beliebige Zeichen wie | oder & etc. enthalten.
Hier erfahren Sie mehr über das Maskieren von Sonderzeichen.
Möchten Sie bei der zweiten Form von get-Aufruf mit [...] eine Sortierung oder einen Bereich übergeben, müssen Sie dies über die speziellen Variablen $_get_range und $_get_sort übergeben:
$_get_range="10,20"; $_get_sort="-"; get ["Name", "==!", $name], "db";
Holt die Einträge 10 bis 30 mit dem Feld Name die genau $name enthalten, in umgekehrter Reihenfolge sortiert. $name kann auch Leerzeichen enthalten.
get "datenbank";
Holt den kompletten Inhalt der Datenbank (Sortiert nach der Id. Die Abfrage lautet also: Id==*).
put "datenbank";
Schreibt den Standard-Hash %_put in die Datenbank.
Um an mehrere passende Einträge zu kommen, benötigt man den Befehl get_next.