Vor kurzem habe ich mir mein eigenes, einfaches Newssystem geschrieben. Nun habe ich eine Frage: Wie kann ich eine Kommentarfunktion einbauen, so dass man unter der Nachricht (Kommetieren) klicken kann, und es erscheint ein Pop-Up-Fenster, in welchem man nun die Nachricht schreiben kann. Neben dem (Kommentieren) steht (Kommentare lesen). Wie kann ich nun machen, dass bei (Kommentare lesen) nur die stehen, die über die aktuelle Nachricht sind?
Kommentrar-Funktion bei einem Newssystem
-
Ralf_Wedmann -
25. Mai 2008 um 18:27
-
-
SELECT * FROM comments WHERE news = $newsid;
-
ach so - klar Ich muss einfach in der Zeile noch ein Extra einfügen "comment", oder so. Danke, vielen Dank!
-
Nein, du brauchst eine extra Tabelle, da Comments - News eine 1:n Beziehung ist
-
Die andere Methode geht aber auch:
Extrazeile vom Typ (Long)Blob und dann macht man sich eine Klasse, die einen Kommentar aufnimmt, packt man in einen array zu dem Beitrag und speichert den array dann mit serialize in der DB:Code
Alles anzeigenclass kommentar { $name; $beitrag; // .... public function __construct($name, $beitrag) { $this->name = $name; $this->beitrag = $beitrag; //... } public function view() { //funktion zur ausgabe } public function __sleep() { return array("name", "beitrag" /* andere Variablen */); } }
Für den Beitrag hast du dann einen array, wenn du einen neuen machst:Code$a = new kommentar ("The User", "Ein kleiner Test-Kommentar"); array_unshift($derkommentararray, $a); $dbeintrag = serialize($derkommentararray);
Das Feld kannst du dann mit $dbeintrag setzen.
Alles nicht getestet...Viele liebe Grüße
The User -
Das nennt man dann auch mit Kanonen auf Spatzen, The User
: -
Und was ist mit der ersten Normalform?
-
Also ich finde es ganz praktisch, jojo, so kann man vor allem auch einfache arrays in einer DB speichern und muss nicht jedes mal die ganze Tabelle abgrasen.
Edit: Ich will ja auch keine armen unschuldigen Sperlinge abschießen.