0 votes
in SoSci Survey (dt.) by s218152 (125 points)
edited by SoSci Survey

Guten Tag,

ich habe in meiner Befragung erfolgreich zwei Persönlichkeitsinventare (einmal 100 und einmal 95 Items) sowie sechs Kontrollitems mittels PHP Code gemischt und auf verschiedene Fragebogenseiten aufgeteilt.

Nun möchte ich die individuelle Reihenfolge dieser insgesamt 201 Items speichern, um nachvollziehen zu können, wie die Versuchspersonen sie bearbeitet haben. Dafür habe ich eine interne Variable angelegt. Wegen der Maximalzahl von 99 Items pro Frage, habe ich in der Rubrik der internen Variable insgesamt drei Fragen mit zwei Mal 99, und einmal 3 Items angelegt, über die die Platzierung der 201 Items anzeigt werden soll.

Ich habe folgenden PHP Code geschrieben:

for ($i=0; $i<count($items); $i++) {
  if ($i < 99) {
    $id = id('I001', $i + 1);
  if ($i > 199) {
    $id = id('I003', $i + 1);
   } else {
    $id = id('I002', $i + 1);
   }
    put($id, $items[$i][0]."_".$items[$i][1]); 
  }
}

Beim Herunterladen der Daten werden mir jedoch nur die Platzierungen der Items in der internen Variable 2 (I002) angezeigt, sprich Item 100-198. Für Item 1-99 und 199-201 werden die Platzierungen in der internen Variable I001 und I003 nicht angezeigt (leere Felder).

Was kann ich tun?

Herzliche Grüße

1 Answer

0 votes
by SoSci Survey (327k points)

Sie haben m.E. die Klammern falsch gesetzt. Versuchen Sie es bitte einmal so:

for ($i=0; $i<count($items); $i++) {
     if ($i < 99) {
        $id = id('I001', $i + 1);
     } elseif ($i > 199) {
        $id = id('I003', $i + 1);
     } else {
        $id = id('I002', $i + 1);
     }
     put($id, $items[$i][0]."_".$items[$i][1]); 
}
by s218152 (125 points)
Herzliche Dank für die schnelle Hilfe.

So angewendet dreht sich das Problem um: jetzt wird die Reihenfolge für die Items, die I001 zugeordnet sind im Output angezeigt, für I002 und I003 erscheinen leere Zellen und zudem im Pretest die Fehlermeldung "Für die Frage I002 wurde kein Item mit der Kennung 100 gefunden" (analog für alle Items in Frage I002 und I003), sowie neuerlich die Fehlermeldung: "Für die Funktion put() wurde anstatt einer Frage- oder Item-Kennung ein Parameter vom Typ NULL angegeben"

Herzliche Grüße
by SoSci Survey (327k points)
> Für die Frage I002 wurde kein Item mit der Kennung 100 gefunden

Der Code ist auch nicht ganz korrekt. Wenn Sie 99 Items pro interner Variable haben, dann ist die Aufteilung wie folgt: I001 -> 1-99, I002 -> 100-198, I003 -> 199-max.

Abgesehen davon würde ich Ihnen dringend (!) empfehlen, dass Sie sich vorab überlegen, wie genau Sie diese Daten in der Auswertung nutzen möchten. Denn vermutlich wäre es sinnvoller die internen Variablen parallel zu den Fragen zu gestalten und dort die Ränge der  Anzeige zu speichern statt die kompletten Item-Kennungen in einem langen Schlauch abzulegen.

Wenn Sie nur den langen Schlauch haben wollten, ginge das auch einfacher:

$varList = '';
foreach ($items as $item) {
  $varID = $items[$i][0]."_".$items[$i][1];
  $varList.= $varID.';';
}
put('I001_01', $varList);

> für I002 und I003 erscheinen leere Zellen

Ja, weil das $i+1 nicht stimmt. Wenn $i>199 (oder dann eben >197), dann müsste es heißen:

     elseif ($i > 197) {
        $id = id('I003', $i - 197);
     }
by s218152 (125 points)
Herzlichen Dank, damit komme ich weiter!

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

...