base
portal
Suche:
Forum
Start
Neue Seite erstellen
Titel:
Ändert bestehende Datensätze. <b>Definition:</b> <code>mod <i>Abfrage</i>, <i>Werte</i>, <i>Datenbank</i>;</code> Alle Felder sind optional. Ohne irgendeine Angabe werden die per URL oder einem Formular übergebenen Parameter genommen. <i>Abfrage</i> entspricht den Datenbank-Abfragen bei "get", "loop" oder "do". <i>Werte</i> geben die zu speichernden Datensätze an und entspricht dem Parameter bei "put". <i>Datenbank</i> gibt den Namen der Datenbank an; wird keine angegeben, wird die zuletzt benutzte verwendet. <b>Beispiele:</b> <code>mod "Name==!Hans", ["Name", "Stefan", "Auto", "Honda"], "kunden";</code> Ä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: <code>mod "Name==!Gisela", ["Auto", "Golf"], "kunden";</code> Ä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: <code>mod "Name==!Gisela", ["Auto", ""], "kunden";</code> Leert das Feld "Auto" des Eintrags mit dem Namen "Gisela" der Datenbank "kunden". Es können auch mehrere Änderungen gleichzeitig durchgeführt werden: <code>mod "Id==3 or Id==4 or Id==7", { Name => [ "Franz", "Thomas", "Claudia" ], Auto => ["Mercedes", "Chrysler", "Toyota"] }, "kunden";</code> Ä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 <i>or</i>. Treffen mehr Datensätze für die Abfrage zu als Sie an Werten zum Ersetzen übergeben, so werden die Werte wiederholt verwendet: <code>mod "Name~=s", [ "Auto", "BMW" ], "kunden";</code> Ändert das Feld "Auto" aller Einträge, deren Name mit "s" beginnt, auf "BMW". </td> </tr> </table> <!-- Eingefügt als expliziter Hinweis auf Ergebnishash --> <style type="text/css"> <!-- /* ... Hier werden die Formate definiert ... */ body,p,td,ul,li {margin: 4px 0;} p.z_titel {margin: 4px 0; font-size: larger; font-weight: bold;} p.z_beispiel { font-weight: bold;} p.code { border: dashed 1px #606060; margin: 10px 100px 10px 25px; padding: 10px 15px; color: #00A; background-color: #f0f0f0; font-family: monospace;} ul.links {margin-top:2px; margin-bottom:2px;} li.links {margin-top:2px margin-bottom:2px;} .grau {color:#606060;} .klein {font-size: x-small;} .einzug {margin: 0 0 0 20px; padding: 0 0 0 20px;} --> </style> <p class=z_titel>Hinweis / Tipp</p> 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.</p> <p class=grau><span class=klein>(die bei Zusammentreffen mehrerer Faktoren sogar bis zum Datenverlust führen können, zumindest aber das Speichern/Ändern mittels <a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/doku/wiki&uid=hempelr&sid=4435588.3685979.95587797.9143175&kennung=50">put</a> bzw. <a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/doku/wiki&uid=hempelr&sid=4435588.3685979.95587797.9143175&kennung=51">mod</a> verhindern)</span> Es ist aus diesem Grund anzuraten, sich anzugewöhnen, den Ergebnishash in jedem Falle beim <a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/doku/wiki&uid=hempelr&sid=4435588.3685979.95587797.9143175&kennung=48">get</a>, <a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/doku/wiki&uid=hempelr&sid=4435588.3685979.95587797.9143175&kennung=50">put</a> bzw. <a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/doku/wiki&uid=hempelr&sid=4435588.3685979.95587797.9143175&kennung=51">mod</a> mit anzugeben. <p class=z_beispiel>Beispiel:</p> <p class=code><c> get "Id==* 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> } </c></p> Hier ist im <b>get</b> "autos" der Datenbankname, "roteautos" der Ergebnishashname im <b>mod</b> 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
Name:
Passwort:
Stichworte:
Version:
1
2
3 Angebot:
Alle
Nur Miete / Lizenz
Nur Miete / Lizenz professional
Nur Miete
Nur Miete smart + pro
Nur Miete smart + pro / Lizenz
Nur Miete pro
Nur Miete ab pure2, smart2, pro1
Nur Lizenz
Nur Lizenz professional
Nur Kostenlos
Ohne Änderungen zurück zur Seite
-
+
©
baseportal
GmbH. Alle Rechte vorbehalten.
powered in 0.01s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!