[[dbSet()]]
 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

de:create:functions:dbset [12.01.2015 21:19] (aktuell)
admin ausgelagert aus functions-proc
Zeile 1: Zeile 1:
 +====== dbSet() ======
  
 +Während der Befragung können mit ''​dbSet()''​ Daten in die **Datenbank für Inhalte** geschrieben werden. Falls schon Eintrag mit demselben Schlüssel existiert, wird dieser aktualisiert -- sonst wird ein neuer Eintrag angelegt.
 +
 +Mit der Funktion kann auch ein Eintrag aus der Datenbank gelöscht werden.
 +
 +''​void **dbSet**(string //​Schlüssel//,​ false|string|array //​Daten//​)''​
 +
 +  * //​Schlüssel//​\\ Der Datenbank-Schlüssel,​ der angelegt, aktualisiert oder gelöscht werden soll
 +  * //Daten//\\
 +    * ''​false''​ -- Der Datenbank-Eintrag wird gelöscht, falls er vorhanden ist
 +    * <​string>​ -- Wird ein Text angegeben, wird dieser als erstes (und einziges) Element für den Schlüssel gespeichert
 +    * <​array>​ -- Wird ein Array als //Daten// übergeben, so werden alle Elemente als Eintrag für den Schlüssel gespeichert
 +
 +**Hinweis:​** Jeder Eintrag in der Datenbank besitzt einen Zeitstempel mit Datum und Uhrzeit der letzten Änderung. Bei einer Aktualisierung mittels ''​dbSet()'' ​ wird auch der Zeitstempel aktualisiert (auch dann, wenn die Daten dieselben bleiben!). Falls Sie nur den Zeitstempel aktualisieren möchten, verwenden Sie ''​[[:​de:​create:​functions:​dbtouch|dbTouch]]''​.
 +
 +
 +===== Beispiel 1 =====
 +
 +Der folgende PHP-Code speichert Alter (Variable "​SD04_01"​) und Geschlecht (Variable "​SD02"​) unter der Kennung des aktuellen Teilnehmers,​ damit diese Variablen in einer späteren Erhebungwelle wieder aufgerufen werden können ([[:​de:​create:​databank|Datenfragmente im PHP-Code verwenden]]).
 +
 +<code php>
 +$data = array(
 +  value('​SD04_01'​),​
 +  value('​SD02'​)
 +);
 +dbSet(caseSerial(),​ $data);
 +</​code>​
 +
 +
 +===== Beispiel 2 =====
 +
 +Der folgende PHP-Code überprüft,​ ob ein Eintrag mit der übergebenen Referenz ([[:​de:​survey:​url|Der Link zum Fragebogen]]) existiert. Die Referenz kodiert ein Unternehmen. Nur wenn bisher max. 10 Personen aus diesem Unternehmen teilgenommen haben, darf der Teilnehmer die Befragung fortsetzen.
 +
 +<code php>
 +$info = dbGet(reference());​
 +// Kein Zugang ohne gültige Referenz
 +if ($info == false) {
 +  text('​invalidLink'​);​
 +  buttonHide();​
 +  pageStop();
 +}
 +// In der Datenbank ist im ersten Feld der Name des Unternehmens
 +// und im zweiten Feld die Anzahl der Teilnehmer hinterlegt.
 +replace('​%unternehmen%',​ $info[0]); ​ // Den Platzhalter %unternehmen% vorbereiten
 +if ($info[1] >= 10) {
 +  text('​tooMuch'​);​
 +  buttonHide();​
 +  pageStop();
 +}
 +</​code>​
 +
 +Der Zähler wird erst auf den letzten Seiten des Fragebogens hochgezählt -- ansonsten zählen auch abgebrochene Interviews.
 +
 +<code php>
 +// Den Zähler eins hochzählen
 +if (isset($counted)) {
 +  $info = dbGet(reference());​
 +  $info[1]++;
 +  dbSet(reference(),​ $info);
 +  // Zusammen mit isset() dafür sorgen, dass nur einmal gezählt wird
 +  $counted = true;
 +  registerVariable('​counted'​);​
 +}
 +</​code>​
 +
 +
 +===== Beispiel 3 =====
 +
 +Evtl. soll der Eintrag zur Referenz aus Beispiel 2 auch einfach gelöscht werden, wenn der erste Teilnehmer ​ aus dem Unternehmen den Fragebogen ausgefüllt hat. Dazu wird der zweite PHP-Code wie folgt modifiziert.
 +
 +<code php>
 +dbSet(reference(),​ false);
 +</​code>​
de/create/functions/dbset.txt · Zuletzt geändert: 12.01.2015 21:19 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki