get / get_next (Datenbank abfragen) |
Definition:
get <i>Abfrage</i>, <i>Datenbank</i>, <i>Ergebnis</i>;
Der erste passende Eintrag wird in Variablen, mit den entsprechenden Feldnamen, gespeichert (genau wie bei loop).
Beispiele:
<p><code>get "KundenNr==32631", "adressen";<br> out "Name: $Name, Ort: $Ort, Telefon: $Telefon";
Hiermit lässt sich ein individueller Zugangsschutz sehr einfach realisieren:
<p><code>get "Name==!$namerein", "nutzer";<br> if($Passwort ne "" && $Passwort eq $passwortrein)<br> {<br> # Hier die Ausgabe der eigentlichen Datenbank<br> # z.B. mit get_next (s.unten)<br> } else<br> {<br> out "Zugang verboten!";<br> }
Um an mehrere passende Einträge zu kommen, benötigt man einen weiteren Befehl:
Definition:
get_next <i>Ergebnis</i>;
Beispiele:
<p><code>get; while(get_next)<br> {<br> out "Name: $Name - Auto: $Auto<br>";<br> }
Mehrere Abrufe per "get" und "get_next" können verschachtelt werden:
<p><code>get "Id==*", "kunden";<br> while(get_next("kunden"))<br> {<br> out "Kunde: $Name<br>";<br> get "Name==$Auto", "autos";<br> out "Auto: $Name<br>";<br> out "Beschreibung: $Beschreibung<p>";<br> }
Sie können auch verschiedene Abfragen derselben Datenbank speichern. Zur Unterscheidung dient der "Ergebnis"-Parameter:
<p><code> get "Name~=a", "kunden"; get "Name~=b", "kunden", "kmitb";<br> out "Alle Kunden mit a:<p>";<br> while(get_next("kunden"))<br> {<br> out "Kunde: $Name<br>";<br> }<br> out "<hr>Alle Kunden mit b:<p>";<br> while(get_next("kmitb"))<br> {<br> out "Kunde: $Name<br>";<br> }
Hinweis / Tipp
Wenn Sie mehrere Datenbankaufrufe auf einer Seite haben, dann muss zur Gewährleistung einer reibungslosen Funktion unbedingt die Angabe des Namens für die Ergebnismenge, der sogenannte Ergebnishash, angegeben werden.
Nur so kann Baseportal "wissen", welche Daten zu welcher Datenbank gehören.
Wenn Sie dies vergessen, werden Sie u.U. nicht reproduzierbare Fehlausgaben bzw. Fehlfunktionen hervorrufen.
(die bei Zusammentreffen mehrerer Faktoren sogar bis zum Datenverlust führen können, zumindest aber das Speichern/Ändern mittels put bzw. mod verhindern)
Es ist aus diesem Grund anzuraten, sich anzugewöhnen, den Ergebnishash in jedem Falle beim get, put bzw. mod mit anzugeben.
Beispiel:
get "Farbe==rot", "autos", "roteautos"<br>
while(get_next("roteautos"){<br>
<span class=einzug>$dsnr = $Id;<span><br>
<span class=einzug>mod "Id==$dsnr ["Farbe","dunkelrot"] ", "autos","andersrot";</span><br>
}
Hier ist im get "autos" der Datenbankname, "roteautos" der Ergebnishashname
im mod der Datenbankname ebenfalls "autos" und der Ergebnishashname "andersrot";
Übrigens, dieser Scriptteil würde in jedem Datensatz der Datenbank "autos", bei dem im Datenbankfeld Namens "Farbe" der Wert "rot" oder "Rot" steht diesen in den Wert "dunkelrot" ändern