0 votes
in SoSci Survey (dt.) by s109993 (12.8k points)
edited by s109993

Ich habe ein Fragebogen mit einer Datenbank für Inhalte und der Login ist über eine Serial. Die Datenbank für Inhalte hat Informationen, die nach dem Login in internen Variablen abgespeichert werden. Nach dem Absenden der Umfrage, soll die Variable SERIAL geköscht werden, und es soll die Datenzeile in der Datenbank für Inhalte gelöscht werden- ist das möglich?

1 Answer

0 votes
by SoSci Survey (358k points)
selected by s109993
 
Best answer

Die Löschung der Datenzeile aus der Datenbank für Inhalte können Sie über dbSet(..., null) erreichen.

Die Löschung der Serial im Datensatz sollte - aber das müssen Sie bitte ausprobieren - über put('SERIAL', '', true) möglich sein.

by s109993 (12.8k points)
put('SERIAL', '', true) funktioniert nicht, aber put('SERIAL', '01', true) geht. Also es nimmt wohl keinen leeren Value/String. Aber das reicht für mich aus.
by SoSci Survey (358k points)
Danke für den Hinweis. Gut, dass es funktioniert - und das mit dem leeren String sehen wir uns bei Zeiten noch an.
by s109993 (12.8k points)
Da ich doch einen Wer setzen muss, dachte ich daran, einfach die CASE Nummer zu nehmen. Würde das funktionieren? Meine Versuche haben bisher nur zu Strings oder Fehlermeldungen geführt. Bisher versucht habe ich:

put('SERIAL', 'caseNumber', true)
put('SERIAL', '%caseNumber%', true)
put('SERIAL', %caseNumber%, true)
 
Die Case ID muss ja nicht mit replace vorbereitet werden, oder?
by SoSci Survey (358k points)
Tatsächlich konnte ich das Problem auf www.soscisurvey.de nicht replizieren. In einem Testprojekt konnte ich den folgenden PHP-Code ohne Fehlermeldung laufen lassen:

put('SERIAL', '', true);

Die SERIAL wurde dabei auch aus dem Datensatz gelöscht. Vielleicht können Sie nochmal spezifizieren, was genau bei Ihnen funktionierte und was nicht, wenn Sie diese Zeile im Code eingebunde hatten?

> Da ich doch einen Wer setzen muss, dachte ich daran, einfach die CASE Nummer zu nehmen.

Erklären Sie gene kurz, was Ihr Ziel ist? Die Fallnummer würden Sie wie folgt als SERIAL setzen:

put('SERIAL', caseNumber(), true);
by s109993 (12.8k points)
Danke, das funktioniert: put('SERIAL', caseNumber(), true);

Ich kann es Ihnen auch nicht sagen, was das Problem ist. Bei meinen Tests hat '' nicht funktioniert, aber ' ' (mit space) hat geklappt. Als jetzt der Kunde die Testdaten eingegeben hat, wurde der Testlogin aus der Serial allerdings nicht gelöscht, was ich mir nicht erklären kann. Ich habe den Code auf der vorletzten Seite (also vor end). Auf der Seite liegt nur der php Code, sonst nichts. Wir arbeiten allerdings auch nicht auf dem SoSci Server, sondern einem eigenen, auf Version 3.7.06.
by SoSci Survey (358k points)
> Auf der Seite liegt nur der php Code, sonst nichts.

Danke für die Zusatzinfo, ich teste diesen Grenzfall nochmal spezifisch.
by SoSci Survey (358k points)
Mit Ihrem Hinweis konnten wir das Problem beheben. Nicht die letzte Seite ohne weitere Inhalte war der Schlüssel, stellte sich heraus, sondern ob die SERIAL zwischenzeitlich schonmal in der Datenbank gespeichert worden war - oder ob sie nur im Schreibcache existierte. War sie in der Datenbank, wurde sie nur überschrieben aber nicht gelöscht. Dieses Programmverhalten haben wir auf www.soscisurvey.de nun korrigiert.

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

...