Einfaches Forum mit PHP programmieren

024felix

Grünschnabel
Hallo,

ich bin noch ein Anfänger in der PHP-Programmierung und möchte nun mal versuchen ein ganz einfaches Forum zu programmieren (eigentlich eher ein Gästebuch mit Antwortfunktion). In dem Forum soll jeder schreiben können, ich brauche also keine Benutzerverwaltung. Was das Forum können soll ist nur, dass man Beiträge verfassen kann und auch auf diese Antworten kann. Die Darstellung soll dann in der Form :

Beitrag
Antwort1
Antwort_zu_Antwort1
Antwort2
usw.

erscheinen.

Umsetzten möchte ich dies mit PHP und MySQL. Ein einfaches Grundgerüst habe ich schon, in dem man Beiträge schreiben kann. Was mir fehlt ist die Integration der Antwortmöglichkeit. Ich brauche konkret ein Konzept, wie ich die Beiträge am besten in der Datenbank speichere, um die bei der Ausgabe die oben erwähnte Darstellung zu erreichen.

Vielen Dank
Felix
 
Hallo,

mir war in der Vorschau leider nicht aufgefallen, dass die Antworten nicht eingerückt sind. Ich fände es am besten, wenn es die Antworten etwas eingerückt sind und die Antworten auf eine Antwort wieder etwas weiter usw.

Gruß
Felix
 
Am einfachsten ist es, wenn Du zu jedem Beitrag speicherst, zu welchem Eintrag er eine Antwort ist. Komplizierter, beim Auslesen schneller und beim Eintragen wesentlich langsamer sind Nested Sets bzw. Mofied Preorder Tree Traversal.
Als einfache Tabellenstruktur für den erste Fall kannst Du folgendes verwenden:

Tabelle "Beitraege":
  • ID, int, auto_increment, primary key
  • antwortAuf, int, Fremdschlüssel, verweist auf die ID eines anderen Eintrgags; null, wenn es der erste Beitrag eines Threads ist
  • titel, char
  • beitrag, text
  • usw.
Auslesen musst Du die Beiträge dann rekursiv. Das ist auch der Punkt, an dem es inperformant wird. In der Rekursion kannst Du mitzählen, wievele Ebenen Du tiefer gehst und entsprechend einrücken.

Gruß hpvw
 
Hallo,

vielen Dank für den Tipp ich glaube das Grundkonzept steht jetzt. Ich habe jetzt noch ein Problem in der Funktion die die Antworten ausliest. Die entsprechende Beiträge möchte ich mit

$result = mysql_query("SELECT nr FROM $table WHERE bezug=1");
while($row=mysql_fetch_array($result))

aufrufen. Wenn ich den Befehl direkt im Skript ausführen klappt es auch. Wenn ich in der Funktion ausführe bekomme ich aber die Fehlermeldung:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE 'bezug'=1' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Kann mit jemand weiter helfen?

Gruß
Felix
 
Zurück