ZitatZu Deinem Code in #78: Ist das nicht der alte Code, den ich ursprünglich mal verwendet habe und sind die oberen Zeilen, mit denen eine ID abgefragt wird, jetzt nicht überflüssig? Das fetch hatte ich dort in einer Schleife: while ($row = $statement->fetch()) ..., wo und wie ich es in den aktuellen Code einsetzen müsste, weiß ich nicht.
Eine Schleife ist genau genommen überflüssig, weil Du ja in deinem Fall den Datensatz für genau eine ID aus der Datenbank liest und dabei kann nur eine Zeile im Ergebnis sein. D. h. dies dürfte den Zweck erfüllen:
$pdo = new PDO('mysql:host=localhost;dbname=music-quiz', 'xxx', 'xxx');
if (isset($_POST['id'])) {
$id = $_POST['id'];
} else {
die("Bitte eine ?id übergeben");
}
$statement = $pdo->prepare("SELECT * FROM questionsanswers WHERE id = ?");
$statement->execute(array($id));
$row = fetch($statement);
// Ausgabe-Array vorbereiten mit der ID und der Frage
// sowie einem leeren Array für die Antworten:
$output = [
'id' => $id,
'question' => $row['question'],
'answers' => [],
];
// Antworten hinzu fügen, das leere Klammernpaar bewirkt,
// dass der neue Eintrag am Ende des Arrays hinzu gefügt wird:
$output['answers'][] = $row['answer1'];
$output['answers'][] = $row['answer2'];
// usw.
// Array im JSON-Format ausgeben:
echo json_encode($output);
Alles anzeigen
Von den ersten Zeilen ist dieses:
$id = $_POST['id'];
erforderlich, weil wir ja die ID für die DB-Abfrage brauchen. Die Fehlerbehandlung könnte man noch ausgefeilter machen, aber jetzt weißt Du ja, dass man die Ausgabe des Skripts im Netzwerk-Tab sehen kann und für das Debugging dürfte das genügen.
ZitatUnd eines frage ich mich auch noch: Ich kann derzeit lokal einen JSON-String in eine PHP-Datei laden, der von JavaScript weiterverarbeitet wird. Aber war nicht das eigentliche Ziel, die Inhalte des Quiz' nicht lokal abzulegen und immer nur die benötigten Teile aus der DB abzufragen? Irgendwie habe ich das immer noch nicht wirklich verstanden ...
Das fett formatierte ist genau der Kern der Sache und wir sind ja gerade dabei, das aufzubauen.
Dieses verstehe ich nicht: "Ich kann derzeit lokal einen JSON-String in eine PHP-Datei laden", jedenfalls wenn Du damit meinst, einen JSON-String aus einer Datei zu laden.