baseportal
Suche: 
 Forum   Start 

Datenbank-Abfragen

 
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:

 
    <i><Feld><Operator><Wert>[<i><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:

 
    Name~=c

Liefert alle Einträge, bei denen das Feld "Name" mit "c" (gross oder klein) beginnt.

 
    Vorname==andrea

Liefert alle Einträge, bei denen das Feld "Vorname" exakt "andrea" (gross oder klein geschrieben) enthält.

 
    Alter<30&Stadt==!Berlin

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<br>

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.

 
    Id==?

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?<br>
     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.

Hier erfahren Sie mehr über das Maskieren von Sonderzeichen.

Letzte Änderung am 21.6.2005, 13:45c - o - +

© baseportal GmbH. Alle Rechte vorbehalten.


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