Hierarchie Kommentar System php

8

Ich möchte discus / reddit / like kommentieren System, ich habe eine "id_answer" (auf 0 gesetzt von defaut) Feld in meiner Datenbank Kommentar und wenn Benutzer auf einen anderen Kommentar antworten dieses Feld ist die "id" des Elternteils Kommentar.

Ich habe die Kommentare des Threads in einem Array, aber ich weiß nicht, wie man Filter für jede Schleife filtert, um etwas wie folgt zu erhalten:

  

Kommentar lvl 1 ($ array [id_answer] ist 0)

     

------- Kommentar lvl 2 ($ array [id_answer] ist id_of_level_one_comment)

     

--------------- Kommentar lvl 3 ...

    
Tahola 11.10.2011, 18:43
quelle

1 Antwort

21

Verwenden Sie drei Felder in Ihrer Datenbank;

  • "id", einzigartig für jeden Kommentar
  • "parent_id", was entweder 0 (oberster Kommentar) oder die "id" des übergeordneten Kommentars
  • ist
  • "thread_id", was die ID dessen ist, was Sie kommentieren

Nehmen wir an, Sie möchten den Kommentarbaum für Ihren Nachrichtenartikel mit der ID "123"

anzeigen

Wenn Sie aus mysql auswählen, wählen Sie alles mit dieser thread_id aus:

%Vor%

Dann sollten Sie Ihr Array vorparsieren, um den Eltern Kommentare zu geben, und eine rekursive Anzeige verwenden, um jeden Kommentar und seine Kinderliste anzuzeigen.

Zum Beispiel:

%Vor%

Dies ergibt folgendes Ergebnis:

%Vor%

Ich verlasse die ORDER BY und dir, wie es kein Problem darstellen sollte.

    
Lepidosteus 11.10.2011, 19:18
quelle