Altes Forum ohne Neuerstellung der Datenbanken umbauen

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

  • Altes Forum ohne Neuerstellung der Datenbanken umbauen

    Ich soll ein altes, sehr einfaches Forum umbauen. Bei dem Froum wurden Postings und Antworten in eine tabelle geschrieben:

    Aufbau:

    ID | RUBRIK | POSTING ID | INSERTDATE | POSTINGTEXT

    Beispiel für Post als Threadstart:

    1 | 1 | 0 | 1202400071 | Erstes Posting

    Beispiel für Post als Antwort:

    2 | 1 | 1 | 1202400075 | Antwort auf Erstes Posting

    Nun wollte ich das gern so machen, dass in der Übersicht nach dem neuesten Eintrag sortiert wird. D.h. auch Antworten sollen berücksichtigt werden.

    Die Übersicht ist Bsp:

    Posting 1 - Antworten 1
    Posting 2 - Antworten 0
    Posting 3 - Antworten 0

    Wenn nun jemand bei Posting 3 antwortet soll also die Übersicht neu sortiert sein:

    Posting 3 - Antworten 1
    Posting 1 - Antworten 1
    Posting 2 - Antworten 0

    Ich hab allerdings imo n Denkproblem, wie ich die Übersicht beim Auslesen sortiere - nach INSERTDATE kann ich nicht sortieren, da ja auch Antworten berücksichtigt werden sollen.

    Theo müsste ich bei Postings und Antworten checken, welche Insertdates am neusten sind und dementsprechend die Postings auslesen. Allerdings steh ich imo voll aufm Schlauch ...

    Weiß jemand Rat?
    Thx 4 Help
    Signatur-Text ...

  • #2
    Also bei größeren Foren macht man es häufig, indem man das "lastpostdate" in der Posting-Tabelle cached. (vgl. hier

    Es soll aber auch Verrückte geben, die einen eher komplexen Join machen. (find ich grad nicht)

    Kommentar


    • #3
      Wie wärs, wenn du einfach die Thread durchgehst und jeweils das Datum des neuesten Posts in ein Array schreibst(natürlich mit Thread-id) und dann einfach sortieren lassen. Da gibts glaub ich ne Funktion, mit der man ein Array sortieren lassen kann. Weiß nich wie die heißt. Schau einfach mal unter selfphp.info in der Befehlsreferenz. So, dann kannst du die Threads sortiert anzeigen lassen....
      MFG
      Speedy

      Kommentar


      • #4
        Also bei größeren Foren macht man es häufig, indem man das "lastpostdate" in der Posting-Tabelle cached.
        mhmm wie meinst das? so das bei ner antwort die neue zeit gespeichert wird? dann hätte ich wieder das prob, dass ich ja die tabelle so lassen soll wie sie ist
        Signatur-Text ...

        Kommentar


        • #5
          Original geschrieben von Speedyspin
          Wie wärs, wenn du einfach die Thread durchgehst und jeweils das Datum des neuesten Posts in ein Array schreibst(natürlich mit Thread-id) und dann einfach sortieren lassen. Da gibts glaub ich ne Funktion, mit der man ein Array sortieren lassen kann. Weiß nich wie die heißt. Schau einfach mal unter selfphp.info in der Befehlsreferenz. So, dann kannst du die Threads sortiert anzeigen lassen....
          MFG
          Speedy
          kk ich denk du meinst so

          read all

          -> Array

          - ID
          - INSERTDATE
          - ISPOST OR ANSWER

          oder hab ich das jetz falsch verstanden ?
          Signatur-Text ...

          Kommentar


          • #6
            Als erstes mal vielen Dank für die Verschiebung, da es sich um ein MYSQL-Datenabfrage, Sortierung von Arrays etc. handelte dachte ich ich bin im richtigen forum ... Nunja kein Kommentar dazu weiter ...

            Also das mit dem Auslesen bekomm ich soweit hin, dass ich alle Posts in einem schönen vollgefüllten Array habe, mein prob iss, das ich die sch... Sortierung nicht hinbekomme ...

            Thx 4 Help ...
            Signatur-Text ...

            Kommentar


            • #7
              Also das mit dem Auslesen bekomm ich soweit hin, dass ich alle Posts in einem schönen vollgefüllten Array habe, mein prob iss, das ich die sch... Sortierung nicht hinbekomme ...
              Ähm, ich hoffe doch, dass du nicht bei jedem Aufruf dieses Array füllst?

              Kommentar


              • #8
                Imo bin ich an der Stelle:
                - ich lese alle posting aus, welche als Threadstart gelten
                PHP-Code:
                     $AP[$POSTINGID]['id']              = $RESULT->ID;
                     
                $AP[$POSTINGID]['firstinsert']  = $RESULT->INSERTDATE
                - dann lese ich die neueste Antwort zu dem Posting aus:
                PHP-Code:
                mysql_query("SELECT ... WHERE pid='".$RESULT->id."' 
                       ORDER BY INSERTDATE DESC LIMIT 0,1"
                )
                // Und so weiter - MYSQL ABFRAGE //
                     
                $AP[$POSTINGID]['lastinsert']  = $RESULT2->INSERTDATE
                Somit hab ich ja die Möglichkeit, das ich die Insert dates im Arry habe inkl. der letzten Antwort. Kann ich per MYSQL nun eine Abfrage realisieren oder eher alle Postings in ein Array und sortieren? In dem Forum sind über 10.000 Postings - ka ob das n prob mit der Leistung wird ...
                Signatur-Text ...

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  Ähm, ich hoffe doch, dass du nicht bei jedem Aufruf dieses Array füllst?
                  mhmm wie dann? ich musses ja bei jedem rubrikaufruf prüfen ...
                  Signatur-Text ...

                  Kommentar


                  • #10
                    ich könnte mich jetzt wiederholen, erspare mich das aber...

                    Kommentar


                    • #11
                      Also bei größeren Foren macht man es häufig, indem man das "lastpostdate" in der Posting-Tabelle cached.
                      verstehe ich so:

                      in das Hauptpost trage ich den timestamp der letzten Antwort ein und sortiere dementsprechend, richtig?

                      wenn ja -> ICH DARF DIE TABELLE NICHT VERÄNDERN !
                      Signatur-Text ...

                      Kommentar


                      • #12
                        wenn ja -> ICH DARF DIE TABELLE NICHT VERÄNDERN !
                        Dann such nach dem angesprochenen JOIN.

                        Kommentar

                        Lädt...
                        X