Kommentare kommentieren, wie speichere ich es in einer Datenbank?

...komplette Frage anzeigen

2 Antworten

Also der Ansatz an deiner Datenbank ist schon falsch

Du bräuchtest 2 Tabellen. Die erste mit den Fragen (frageid, frage ).

die 2. mit den Kommentaren (kommentarId, frageid, kommentar)

Die Verknüpfung passiert dann über frageid. Um die Unnötige Aufzählung zu vermeiden kannst du sowohl  frageid als auch kommentarId auf AutoIncrement setzen:

http://dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html

Bezüglich deines Codes würde ich PDO empfehlen und deine Variabeln vorher abfangen. Hier ein Beispiel (wenn ID auf auto_increament ist kann der Wert NULL sein und er addiert einfach auf):

<?php
$titel = filter_input(INPUT_POST, 'titel', FILTER_SANITIZE_STRING);
$question = filter_input(INPUT_POST, 'question', FILTER_SANITIZE_STRING);

$pdo = new PDO('mysql:host=localhost;dbname=webseite', 'root', 'usbw');

$sql = "INSERT INTO question (ID, titel, question) VALUES (NULL, :titel, :question);";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':titel', $titel, PDO::PARAM_STR);
$stmt->bindParam(':question', $question, PDO::PARAM_STR);
if ($stmt->execute()) {
echo "Gespeichert";
} else {
echo "Fehler:";
print_r($stmt->errorInfo());
}
?>
Antwort bewerten Vielen Dank für Deine Bewertung

Deine Zeile 20 ist von vorn bis hinten Murks. Auf welchen Query bezieht sich denn die Schleife? Und warum zählst du dort eine ID hoch? Das ist Aufgabe der Datenbank, nicht Aufgabe von PHP.

Weiterhin solltest du dich mit SQL-Injections beschäftigen. Sonst ist deine Datenbank in kurzer Zeit gelöscht.

Um auf die Frage mit den Kommentaren zu antworten: Du nimmst dort die ID der Frage als Fremdschlüssel rein (1:n Beziehung) und ein weiteres Feld mit einer Eltern-ID, die sich als Fremdschlüssel auf den Primärschlüssel der Kommentartabelle bezieht.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?