baseportal
Suche: 
 Forum   Start 

mod (Bestehende Datensätze ändern)

 
Ändert bestehende Datensätze.

Definition:

 
    mod <i>Abfrage</i>, <i>Werte</i>,
    <i>Datenbank</i>;

Alle Felder sind optional. Ohne irgendeine Angabe werden die per URL oder einem Formular übergebenen Parameter genommen. Abfrage entspricht den Datenbank-Abfragen bei "get", "loop" oder "do". Werte geben die zu speichernden Datensätze an und entspricht dem Parameter bei "put". Datenbank gibt den Namen der Datenbank an; wird keine angegeben, wird die zuletzt benutzte verwendet.

Beispiele:

 
    mod
    "Name==!Hans", ["Name", "Stefan",
    "Auto", "Honda"], "kunden";

Ändert den Eintrag mit dem Namen "Hans" der Datenbank "kunden": Das Feld "Name" bekommt den neuen Wert "Stefan" und das Feld "Auto" den Wert "Honda". Wenn kein Datensatz mit der Abfrage übereinstimmt, also kein Nutzer mit dem Namen "Hans" existiert, passiert garnichts.

Nicht angegebene Felder bleiben unverändert:

 
    mod
    "Name==!Gisela", ["Auto", "Golf"],
    "kunden";

Ändert das Feld "Auto" des Eintrags mit dem Namen "Gisela" der Datenbank "kunden" in "Golf". Der Name "Gisela" bleibt wie er ist.

Um ein Feld zu löschen muss ein Leertext übergeben werden:

 
    mod
    "Name==!Gisela", ["Auto", ""],
    "kunden";

Leert das Feld "Auto" des Eintrags mit dem Namen "Gisela" der Datenbank "kunden".

Es können auch mehrere Änderungen gleichzeitig durchgeführt werden:

 
    mod "Id==3 or
    Id==4 or Id==7", { Name => [ "Franz",
    "Thomas", "Claudia" ], Auto =>
    ["Mercedes", "Chrysler", "Toyota"]
    }, "kunden";

Ändert die Einträge mit den Ids 3, 4 und 7 der Datenbank "kunden": Der Eintrag mit der Id 3 wird zu Name=Franz und Auto=Mercedes, der Eintrag mit der Id 4 zu Name=Thomas und Auto=Chrysler und der Eintrag mit der Id 7 zu Name=Claudia und Auto=Toyota. Beachten Sie die Verknüpfung mit or.

Treffen mehr Datensätze für die Abfrage zu als Sie an Werten zum Ersetzen übergeben, so werden die Werte wiederholt verwendet:

 
    mod
    "Name~=s", [ "Auto", "BMW" ],
    "kunden";

Ändert das Feld "Auto" aller Einträge, deren Name mit "s" beginnt, auf "BMW".

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:

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

Letzte Änderung am 30.1.2006, 21:30c - o - +

© baseportal GmbH. Alle Rechte vorbehalten.


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