0 votes
ago in SoSci Survey (dt.) by s179116 (110 points)

Hallo,

ich bräuchte Hilfe mit meinem Codebogen, den ich für eine quantitative Inhaltsanalyse angelegt habe. Ich bin der Beschreibung im Hilfe-Bereich gefolgt und soweit klappt alles. Der erste Post aus der Datenbank wird angezeigt und man kann Fragen dazu klicken. Was nicht funktioniert, ist die Zuteilung von Posts an die verschiedenen Coder. Egal welchen Link ich verweden (r=1 bis r=4), es wird immer der erste Post aus der Datenbank angezeigt und offenbar nicht der Key verwendet, der spezielle Posts speziellen Codern zuordnet. Ich bin mir nicht sicher, wo das Problem in der Datenbank liegt. Der einzige Unterschied zur Anleitung ist, dass ich keine Posts doppelt codieren lasse, sondern alle Coder ihren eigenen Anteil im Datensatz einmalig codieren sollen. Ich würde mich freuen, wenn ich Hilfe bekommen könnte.

Vielen Dank

1 Answer

0 votes
ago by SoSci Survey (371k points)

Egal welchen Link ich verweden (r=1 bis r=4), es wird immer der erste Post aus der Datenbank angezeigt

Test Sie als erstes, ob die Kodierer-ID korrekt im Datensatz abgelegt wird, in der Anleitung wäre das die Variable CX01_01.

Anschließend suchen Sie diesen Teil des Codes heraus:

// Post-ID ermitteln aus der Tabelle Codierer:in/Posts
$key = 'C'.$coder.'-'.value('CX01_02');
$info = dbGet($key);

und lassen Sie sich einmal anzeigen, was in $info aus der Datenbank ausgelesen wird:

html('<pre>');
html($info);
html('</pre>');

Das prüfen Sie exemplarisch bite für die Kodierer-IDs 1 und 2.

ago by s179116 (110 points)
Herzlichen Dank für die schnelle Antwort. Das schaut eigentlich gut aus für die vier Coder. Dann liegt das Problem wohl eher in der Darstellung des passenden Posts im Fragebogen.

Array [1, 1, 1]
Array [1134, 2, 1]
Array [2575, 3, 1]
Array [3356, 4, 1]

Mein Code ist:

// Post-ID ermitteln aus der Tabelle Codierer:in/Posts
$key = 'C'.$coder.'-'.value('CX1_02');
$info = dbGet($key);
if (!$info) {
    show('CX3', ['%num%' => $key]);
    buttonHide();
    pageStop();
}
$postID = $info[2];
put('CX1_03', $postID);
 
 
// Post (Inhalt) abrufen
$info = dbGet('P'.$postID);
if (!$info) {
    show('CX4', ['%post%' => $postID]);
    buttonHide();
    pageStop();
}
$html = $info[0];
put('CX1_04', $html);

Das Einzige, was ich ändern musste, ist dass es jeweils nicht CX01 heißt, sondern CX1, weil ich meine Variablen nicht mit zwei Zahlen anlegen konnte (da gab es eine Fehlermeldung). Habe den Code aber überall entprechend der tatsächlichen Bezeichnung der internen Variablen aktualisiert.
ago by SoSci Survey (371k points)
Beim CX1 fehlt zumindest wahrscheinlich mal eine 0, also CX01. Evtl. auch bei CX4.

Wenn die Post-ID schonmal richtig abgerufen wird, dann prüfen Sie als nächstes, ob die Post-Infos auch korrekt abgerufen werden, also...

$info = dbGet('P'.$postID);
html('<pre>');
html($info);
html('</pre>');
ago by s179116 (110 points)
edited ago by s179116
Vielen Dank. Beim CX1 fehlt zwar die 0, aber meine Variablen sind auch als CX1_01 bis CX1_04 benannt. Wenn ich CX01_01 als Variablenname eingegeben habe, dann kam die Fehlermedung: "Benutzerdefinierte Variablennamen müssen mit einem Buchstaben beginnen und dürfen, um Überschneidungen mit den automatischen Variablennamen zu verhindern, nicht gleichzeitig auf der dritten und vierten Stelle eine Ziffer verwenden." Daher habe ich die Null weggelassen und dann im PHP-Code überall die 0 gelöscht, damit Variablenname und Code übereinstimmen.

Beim Testen mit dem code
$info = dbGet('P'.$postID);
html('<pre>');
html($info);
html('</pre>');

wird bei allen Coder-Survey Links (1-4) noch immer nur derselbe Post, d.h., der erste in der Datenbank, angezeigt.
ago by SoSci Survey (371k points)
Okay, ich ging davon aus, dass Sie die "technischen" Kennungen verwenden. Wenn Sie die Variablen selbst umbenannt haben, ist natürlich alles korrekt :)

> wird bei allen Coder-Survey Links (1-4) noch immer nur derselbe Post, d.h., der erste in der Datenbank, angezeigt.

Gut, dann lassen Sie sich zur Sicherheit noch anzeigen, ob die Post-ID weiterhin variiert:

$info = dbGet('P'.$postID);
html('<pre>');
html($postID);
html($info);
html('</pre>');

Wenn die Post-ID variiert, aber nicht der Inhalt des Posts, dann prüfen sie die P-Einträge in der Datenbank für Inhalte. Auf den ersten Blick würde ich behaupten, dass diese einfach nicht korrekt sind?

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

...