[[dbSet()]]
SoSci Survey
Übersetzungen dieser Seite:
 

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 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 (Datenfragmente im PHP-Code verwenden).

$data = array(
  value('SD04_01'),
  value('SD02')
);
dbSet(caseSerial(), $data);

Beispiel 2

Der folgende PHP-Code überprüft, ob ein Eintrag mit der übergebenen Referenz (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.

$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();
}

Der Zähler wird erst auf den letzten Seiten des Fragebogens hochgezählt – ansonsten zählen auch abgebrochene Interviews.

// 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');
}

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.

dbSet(reference(), false);
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