Sie können Datenbanken nach beliebigen
Kombinationen von Feldinhalten und Bedingungen abfragen. Alle Einträge
bei denen das Feld "Name" mit "a" beginnt (gross oder
klein), das Feld "Betrag" kleiner als 100 ist und das Feld
"VIP" ein "x" ist - kein Problem...
Definition:
<Feld><Operator><Wert>[<Verknüpfung>...] |
Feld = Feldname der in der Datenbank definiert sein muss
Operator = Bestimmt die Art der Übereinstimmung:
Operator |
Bedeutung |
~= |
Suche Wertanfang; Ignoriere
Gross/Klein-Schreibung |
== |
Suche exakten Wert; Ignoriere
Gross/Klein |
~=! |
Suche Wertanfang; Beachte
Gross/Klein |
==! |
Suche exakten Wert; Beachte
Gross/Klein |
< <=
<> >= > |
Suche kleiner, kleinergleich,
ungleich, grössergleich, grösser Wert; Ignoriere Gross/Klein |
<! <=!
<>! >=! >! |
Suche kleiner, kleinergleich,
ungleich, grössergleich, grösser Wert; Beachte Gross/Klein |
~<= ~<>
~> |
Suche kleinergleich, ungleich,
grösser Wertanfang; Ignoriere Gross/Klein |
~<=!
~<>! ~>! |
Suche kleinergleich, ungleich,
grösser Wertanfang; Beachte Gross/Klein |
~< ~>= ~<!
~>=! |
Redundant; Dasselbe wie < >= <! >=! |
Wert = Wert nach dem gesucht wird
Einige Zeichen als Wert haben eine spezielle Bedeutung:
Zeichen |
Bedeutung |
* |
Passt auf alles. Es werden also
alle Einträge ausgegeben, sortiert nach dem angegebenen Feld. |
# |
Passt auf den "letzten"
Eintrag des angegebenen Felds, z.B. bei den textsortierten
Einträgen "a", "b", "c" also das
"c". |
? |
Passt auf irgendeinen zufälligen
Eintrag. Möglich sind die Operatoren "==",
"<" und ">". |
Verknüpfung = Art der Verknüpfung der Teilergebnisse:
Zeichen |
Verknüpfung |
Bedeutung |
& |
AND (Und) |
Nur Einträge die in beiden
Teilmengen enthalten sind |
| |
OR (Oder) |
Alle Einträge die in einer der
beiden Teilmengen enthalten sind |
° |
NOT (Nicht) |
Nur Einträge die in der ersten,
nicht aber in der zweiten Teilmenge enthalten sind |
Bitte beachten: Sie können nur Abfragen für Felder machen, bei
denen Sie in der Datenbank-Definition eine Sortierung ausgewählt haben!
Beispiele:
Liefert alle Einträge, bei denen das Feld "Name" mit
"c" (gross oder klein) beginnt.
Liefert alle Einträge, bei denen das Feld "Vorname" exakt
"andrea" (gross oder klein geschrieben) enthält.
Liefert alle Einträge, bei denen das Feld "Alter" kleiner als
30 ist UND das Feld "Stadt" exakt den Wert "Berlin"
(mit grossem "B" und kleinem Rest) enthält.
Beruf==Programmierer|Beruf==System-Administrator&PLZ~=1
|
Liefert alle Einträge, bei denen das Feld "Beruf" die Werte
"Programmierer" ODER "System-Administrator" enthalten
UND das Feld "PLZ" mit "1" beginnt.
Titel>=!d&Titel<!k°Titel~=!h |
Liefert alle Einträge, bei denen das Feld "Titel" mit kleinem
"d", "e", "f", "g", "i"
oder "j" beginnt.
Liefert irgendeinen zufälligen Eintrag.
Aufruf über URL:
Sie können die obigen Abfragen nun einfach in der URL verwenden:
http://baseportal.de/cgi-bin/baseportal.pl?
htx=/urxi/out1&db=test&Name>t&Strasse~=baum+str |
Eine Datenbank-Ausgabe im Template "out1" des Nutzers
"urxi" erhält alle Einträge der Datenbank "test",
bei denen das Feld "Name" mit einem Buchstaben grösser
"t" und das Feld "Strasse" mit dem Wert "baum
str" anfängt. Beachten Sie, dass ein Leerzeichen in einer URL mit
"+" kodiert wird.
Aufruf in einem Template:
Sie können die obigen Abfragen auch als Parameter für baseportal-Tags
verwenden:
<do action=all
Rubrik==Krimis or Rubrik==Liebesromane not Sprache==Englisch and
Vorhanden==1> |
Gibt alle Einträge aus, bei denen das Feld "Rubrik" den Wert
"Krimis" oder "Liebesromane" enthält, das Feld
"Sprache" nicht "Englisch" ist und das Feld
"Vorhanden" auf "1" gesetzt ist. Sie können das
"and" auch weglassen, da es die Standard-Verknüpfung ist:
<do action=all
Firma==Sony Produktart~=tv> |
Gibt alle Einträge aus, bei denen das Feld "Firma" den Wert
"Sony" und das Feld "Produktart" mit "tv"
beginnt.
Umgang mit speziellen Zeichen:
Bei einigen Zeichen gibt es Probleme, wenn sie Teil einer Abfrage sind,
z.B. mit dem Leerzeichen, da dieses die Parameter voneinander trennt oder
mit dem Grösserzeichen ">", da dieses als Endekennung für
Tags dient. Sie müssen deshalb diese "speziellen" Zeichen in
Abfragen kennzeichnen, indem Sie ein sog. Backslash "\"
voranstellen:
<loop Name==Hans\
Albers Alter\>18> |
Gibt alle Einträge aus, deren Name "Hans Albers" und das
Alter grösser als 18 ist.
|
|