auslesen "rekursiver" Kommentare

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • auslesen "rekursiver" Kommentare

    Hi,

    ich bastel mir gerade kleines Gästebuch mit Kommentarfunktion.

    Ziel soll es sein, dass die User wie gewohnt ihre Kommentare schreiben können, aber auch auf einen Kommentar anworten können (wie in einem Forum.

    Soll aussehen wie folgt.

    Eintrag 3
    - Reply to 3
    - Reply to 3
    Eintrag 2
    - Reply to 2
    Eintrag 1
    Eintrag 0

    Einträge sollen vorzugsweise alle in eine Tabelle gespeichert werden. egal ob Reply oder normal.

    Jetzt könnte ich natürlich die normalen einträge auslesen und dann in der while-schleife in einer seperaten query noch die antworten. aber das kanns ja nicht sein.

    hat jemand ein paar schlagwörter für mich, wie ich es in einer query lösen kann?
    ICH BIN ICH!!!

  • #2
    Re: auslesen "rekursiver" Kommentare

    Original geschrieben von IchBinIch
    hat jemand ein paar schlagwörter für mich, wie ich es in einer query lösen kann?
    Nested Set, rekursive Beiträge, Baum bei Forenbeiträgen, usw. such doch einfach mit der Suche etwas rum, wenn es dich wirklich interessiert, wirst du auch was finden

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Es ist nicht lange her seit wir das das letzt mal hatten nur halt mit Kategorien:

      http://www.php-resource.de/forum/sho...threadid=52002
      daniel-portal.com/games Free Games and more

      Kommentar


      • #4
        ich danke euch schonmal,

        allerdings keinne ich alle drei modelle recht gut und halte sie irgendwie alle nicht für so geeignet.

        rekursiv fällt ohnehin raus. bei 20 einträgen pro seite, habe ich nachher 21 Queries, was nicht wirklich optimal ist.

        nested sets sind mir mit der rechts-links struktur eigentlich zu groß. vorallem, weil ich eigentlich nur zwei ebenen habe (den beitrag + kommentare zum beitrag, die alle auf der gleichen ebene sind und nur chronologisch geordnet werden müssen).

        Menu_menu wäre vielleicht am ehesten geeignet. aber eben nur über 2 tabellen, was eigentlich bei 2 ebenen überflüssig sein sollte.


        mich reizt es nach einer variante, wo ich alle einträge einer tabelle auslesen kann und diese gleichermaßen nach datetime (vom beitrag) und nach der dazugehörigen "parentid" (im db eintrag des kommentars) sortieren kann.

        Vielleicht würde es auch reichen, wenn ich nach

        id und parentid gleichermaßen sortieren kann. Weil die id sollte ja aufsteigend sein.
        ICH BIN ICH!!!

        Kommentar


        • #5
          Original geschrieben von IchBinIch
          [B]ich danke euch schonmal,

          rekursiv fällt ohnehin raus. bei 20 einträgen pro seite, habe ich nachher 21 Queries, was nicht wirklich optimal ist.
          Wieso 21 Querys ich meine mit rekursion ja nicht, dass du jedesmal noch eine Query sendest!

          Nehmen wir folgende Tabelle an:
          -ID
          -Text
          -parent_id
          -beitrag_id

          Du würdest um 20 Einträge plus Unterpunkte abzufragen 2 Querys benötigen. Die erste fragt 20 Einträge ab bei denen beitrag_id und parent id -1 sind (also root sind) ab die zweite alle anderen alle Einträge, bei denen die zuvor geholten Id's mit beitrag_id übereinstimmen. Später kannst du dass dann mit php Ordnen.
          Ich gebe zu, dass das wahrscheinlich nicht ganz das ist was du wolltest, aber ich finde das der Bezug verloren ginge wenn ein Beitrag zb 21 Unterpunkte hätte. Auf der zweiten Seite wäre dann eine Seite mit dem Unterpunkt, aber das vorangegangen fehlt.
          daniel-portal.com/games Free Games and more

          Kommentar


          • #6
            Interessant, ich glaub das kann ich auch brauchen *subscribe*

            Später kannst du dass dann mit php Ordnen.
            Das kannste auch mit SQL machen.

            Die erste fragt 20 Einträge ab bei denen beitrag_id und parent id -1 sind
            Beitrag_id == parent_id, oder hab ichs falsch verstanden?
            EDIT:
            Habs mal bei mir eingebaut. Haste dir das so vorgestellt? http://www.duis3.de/gaestebuch/
            Zuletzt geändert von TobiaZ; 25.03.2005, 14:56.

            Kommentar


            • #7
              Beitrag_id == parent_id, oder hab ichs falsch verstanden?
              parent_id => ID des Beitrags zu welchem der aktuelle Eintrag geschrieben wurde (also für Antwortfunktionen)..



              @TobiaZ:

              Du hast bei dir eine Blätterfunktion?

              Wenn nicht brauchst du nur einen Query, einfach alle Einträge in einen asso. Array speichert.

              PHP-Code:
              //$result => Array mit den ganzen Daten für den aktuellen Beitrag
              $posts[$result['parent_id']][] = $result

              Dann einfach mit einer Funktion rekrusiv alle Einträge durchgehen, als Parameter bekommt die Funktion die aktuelle parent_ID übergeben (beim ersten manuellen Aufruf "-1" wenn du es so gespeichert hast) und diese liest dann alle Beiträge mit dieser parent_ID aus dem Array aus..



              Floriam


              EDIT:
              Wenn ihr allerdings nur einen Unterpunkt zulasst dann kann man das ganze ja auch einfach mit einer Schleife-in-der-Schleife lösen und nicht mit einer rekursiven Funktion..
              Zuletzt geändert von Floriam; 26.03.2005, 14:50.
              PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

              Kommentar


              • #8
                Du hast bei dir eine Blätterfunktion?
                Nö! Hatte ich noch keine Zeit zu. Aber auf die Dauer kanns so nicht bleiben.

                Wenn nicht brauchst du nur einen Query, einfach alle Einträge in einen asso. Array speichert.
                bräuchte ich noch nichtmal, glaube ich.

                Kommentar

                Lädt...
                X