Kommentarfunktion programmieren?

2 Antworten

HTML-Formular erstellen mit einem Textfeld für den Kommentar. Wenn dieser abgesendet wird, wird er z.B. mit php weiterverarbeitet und in einer Datenbank gespeichert. Wenn man die Seite des Bildes aufruft, werden alle Kommentare die zu dem entsprechendem Bild gehören aus der Datenbank ausgelesen und angezeigt.

Kein Gästebuch! 

Wo ist der Unterschied? Rein von der technischen Umsetzung läuft es doch genauso ab: Nutzer schreibt Kommentar, Kommentar wird intern gespeichert und beim nächsten Seitenaufruf entsprechend ausgelesen. Sollten auf Kommentare nochmals Kommentare folgen können, könnte eine Baumstruktur für die Speicherung sinnvoll sein.

Zwischen Bild und Kommentar muss zudem eine Assoziation bestehen. Beim Rendern des Bildes werden zugleich die passenden Kommentare aus der Datenquelle gesucht.

Bei einer Datenbank könnte man bspw. zwei Tabellen anlegen:

  • Eine Tabelle speichert die Kommentare zusammen mit ihrem Datum. Als Primärschlüssel wird eine Spalte mit Auto-Index verwendet.
  • Eine Tabelle speichert die Bilder. Eine Spalte beinhaltet die Bildpfade, eine zweite Spalte stellt einen Fremdschlüssel dar, der auf den Primärschlüssel der ersten Tabelle verweist.

Beim Speichern eines Kommentars wird in jeder Tabelle ein Eintrag angelegt. Einmal der Kommentar mit aktueller Zeit und einmal die Assoziation in der zweiten Tabelle.

Simples Konzeptbeispiel für das Rendering mit nur einer Kommentarebene:

<?php
  $images = readImagesFromDataSource();

  foreach ($images as $image):
?>
<img alt="<?= $image["alternate"] ?>" src="<?= $image["sourcepath"] ?>" />
<ul>
  <?php
    $comments = readCommentsForImage($image);

    foreach ($comments as $comment):
  ?>
    <li><?= $comment ?></li>
  <?php endforeach; ?>
  <li>
    <form method="post">
      <!-- your form ... -->
    </form>
  </li>
</ul>
<?php endforeach; ?>

PS.: Recherchiere doch einmal, ob es nicht schon entsprechende Bibliotheken o.ä. gibt, welche dir zur Lösungsfindung helfen können.