baseportal
Suche: 
 Forum   Start 

get - Datenbank abfragen

 
baseportal stellt spezielle Befehle zur Behandlung von Datenbanken bereit. Sie erlauben den Abruf, das Hinzufügen, Ändern oder Löschen von Datensätzen. Da Sie diese Befehle in Seiten einsetzen, die nur Sie verändern können, haben Sie mit diesen Befehlen immer Zugriff auf alle Ihre Datenbanken, unabhängig davon, wie die Rechte dieser Datenbanken gesetzt sind.

Definition:

get Abfrage, Datenbank, Ergebnis;

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 range=0,10", "kunden";

Holt die ersten 10 Kunden mit dem Vornamen "hans", einem Alter unter 30 und aus dem Postleitzahlengebiet mit führender "8".

get "datenbank";

Holt den kompletten Inhalt der Datenbank (Sortiert nach der Id. Die Abfrage lautet also: Id==*).

Nach der Abfrage einer Datenbank stehen automatisch in speziellen Variablen nützliche Werte bereit, so z.B. in $_amount die Anzahl der gefundenen Einträge oder in $_amount_all die Gesamtzahl aller Einträge.

get "PLZ~=8", "kunden";
out "Gesamt: $_amount_all<br>";
out "Gefunden: $_amount<br>";

Gibt die Anzahl der Einträge im Postleitzahlenbereich "8", sowie die gesamt in "kunden" enthaltenen Einträge aus.


Abfrage über eine Liste

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.


Sie können auch die Abfrage vorher in einer Liste speichern und dann über eine Referenz an get übergeben:

my @query;
for(my $i=0; $i<21; $i+=3)
{
  push @query, "Wert", "==", $i, "|";
}
get \@query, "datenbank";

Holt alle Einträge bei denen das Feld "Wert" den Inhalt 0, 3, 6, 9, 12, 15 oder 18 hat.


Um bei der Verwendung einer Liste eine Sortierung oder einen Bereich zu ü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.


Um nach dem get der Reihe nach alle gefundenen Einträge zu durchlaufen, benötigt man den Befehl get_next.

Letzte Änderung am 22.9.2007, 20:30 - Stichworte: get, Abfrage, Ergebnishash, Datenbank abfragen, Daten holen, Sonderzeichen, Sortierung, Bereich, $_amount, $_amount_all

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


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