Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

0 votes

Hallo,

wenn ich eine Datenbank für Inhalten importiere, sind die Spalten automatisch mit "Schlüssel", "Sprache" "0" etc. hinterlegt, über die die Zuordnung stattfindet.
Ich möchte für eine jährliche Kundenbefragung große Fragebogenteile a priori hinterlegen. Für Konstanz in den Folgejahren, wäre es schön, wenn ich die Datenbank individuell belabeln könnte, sprich dass die Zuordnung über meine Variablentitel funktioniert, also so, wie ich die Daten auch runterladen kann (für den Fall, dass Variablen im nächsten Jahr wegfallen oder dazukommen).
Geht so etwas?
Danke und Viele Grüße

in SoSci Survey (dt.) by s087905 (160 points)

1 Answer

0 votes

Ich befürchte, das wird nicht funktionieren, weil die Daten als nicht-benanntes Array (Liste) hinterlegt sind. Aber Sie können einfach die erste Zeile Ihres Datensatzes (also die Variablennamen) kopieren und (z.B. in SciTe mit Suchen/Ersetzen) Anführungszeichen und Kommata dazwischen schreiben. Dann würde z.B. aus...

AB01_01   AB01_02   BB01

Durch Suchen und Ersetzen des Tabulators durch ","

AB01_01","AB01_02","BB01

Dann noch ein wenig etwas davor und dahinter...

$varNames = array("AB01_01","AB01_02","BB01");

Und schon haben Sie ein Array, das Sie im PHP-Code verwenden können, um Ihr Array von dbGet() wie gewünscht zu labeln:

$varNames = array("AB01_01","AB01_02","BB01");
$dataBlank = dbGet($key);
$data = array_combine($varNames, $dataBlank);

Vermutlich müssen Sie noch ein klein wenig nachhelfen, damit wirklich alles passt (also damit Schlüssel und Daten tatsächlich 1:1 gleich lang sind), aber der Aufwand hält sich in Grenzen.

Wenn Sie die Daten lediglich an preset()übergeben möchten, können Sie das array_combine() natürlich auch sparen:

$varNames = array("AB01_01","AB01_02","BB01");
$dataBlank = dbGet($key);
foreach ($varNames as $i => $varName) {
  preset($varName, $dataBlank[$i]);
}

(zu platzieren auf jeder Seite, oben)

by SoSci Survey (222k points)
Funktion wird in PHP nicht unterstützt
...