0 votes
in SoSci Survey (dt.) by s017710 (275 points)
edited by SoSci Survey

Hallo,

ich arbeite mit der "Datenbank für Inhalte" - bisher gab es damit keine Probleme. Seit Neuestem erhalte ich allerdings folgende Fehlermeldung:

Fehler im Fragebogen: Trying to access array offset on value of type
bool

Der Code zum Aufrufen und Anzeigen der Daten lautet folgendermaßen:

$info = dbGet(caseSerial());
html('<hr><p><b>Ihr 1. Ziel lautete: </b>'.$info[1].'</p><br><br>');

Die 2. Zeile wird bei der Fehlermeldung hervorgehoben.

An der Struktur der csv-Datei für die Datenbank für Inhalte hat sich nichts geändert.

Ich arbeite übrigens auf einem eigenen Server, also nicht auf soscisurvey.de. Vielleicht liegt da ein Update-Problem vor (wir haben die Version 3.2.44)?

Für einen schnellen Hinweis wäre ich sehr dankbar.

Viele Grüße

1 Answer

0 votes
by SoSci Survey (306k points)

Diese Fehlermeldung tritt auf, wenn dbGet() keinen passenden Eintrag in der Datenabnk für Inhalte findet und deshalb false zurückliefert.

Der Aufruf $info[1] funktioniert dann nicht.

Bitte verwenden Sie einen IF-Filter, um angemessen zu reagieren, wenn der Eintrag nicht gefunden wird:

$info = dbGet(caseSerial());
if ($info) {
    html('<hr><p style="margin-bottom: 2em"><b>Ihr 1. Ziel lautete: </b>'.$info[1].'</p>');
} else {
    html('<hr><p style="margin-bottom: 2em">Das ist jetzt irgendwie nicht gut....</p>');
    buttinHide();
    pageStop();
}
by s017710 (275 points)
edited by SoSci Survey
Vielen Dank, aber das löst mein Problem leider nicht. Denn es sind ja Inhalte enthalten. Ich bekomme jetzt zwar keine Fehlermeldung, aber eben auch nicht den Inhalt angezeigt, den ich möchte, der aber ja in der Datenbank für Inhalte enthalten ist).

Haben Sie noch eine Idee?
Viele Grüße
by SoSci Survey (306k points)
> aber das löst mein Problem leider nicht. Denn es sind ja Inhalte enthalten.

Dann lassen Sie sich die Inhalte doch mal anzeigen:

debug($info);

Und prüfen Sie auch, ob die SERIAL überhaupt passt:

debug(caseSerial());

Falls nichts angezeigt wird, weil Sie den Fall nicht im Debug-Modus gestartet haben (man kann auch Adresseinträge mit Debug-Häkchen anlegen), können Sie die Fallnummer auch mittels html() anzeigen lassen und anschließend den zugehörigen Fall in der Datenbank für Inhalte prüfen:

html('<p>SERIAL: '.caseSerial().'</p>');
by s017710 (275 points)
Sehr seltsam alles. Ja ich habe mir mittels

html('<p>SERIAL: '.caseSerial().'</p>');

die SERIAL anzeigen lassen. Diese gibt es zwar im Projekt, aber definitiv NICHT in der Datenbank für Inhalte. Und egal, welchen Fall ich aufrufe, es wird immer genau die gleiche (falsche) SERIAL angezeigt.
by SoSci Survey (306k points)
Wie rufen Sie die Fälle denn auf?
by s017710 (275 points)
Ich hab das Problem gefunden. War mein Fehler. Typischer Copy-Paste Fehler, wenn man Links kopiert (es war immer die besagte falsche SERIAL "hinterlegt"). Bitte entschuldigen Sie die Umstände und danke für die Hilfe-das hat mich auf die richtige Fährte gebracht.
Ein schönes Wochenende!

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

...