Logikfrage zwecks "neue beiträge anzeigen"

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

  • Logikfrage zwecks "neue beiträge anzeigen"

    Abend,

    mir stellt sich gerade die Frage, wie ich am besten einem eingeloggtem User neue gelesen und nicht-gelesene Beiträge anzeige.

    Kurz gefasst, nach dem Login:
    - zeige Beiträge die neuer als das letzte Logindatum sind
    - beim lesen dieser Beiträge die Thread-ID in einem Cookie speichern und somit als gelesen markieren

    Sehe ich das richtig, das der Query der Forum-Indexseite, beim auslesen ob im Forum xy neue Beiträge stehen, dann
    "where thread_datum > logindatum und thread_id_1 nicht cookie_thread_id_1 und thread_id_2 nicht cookie_thread_id_2 etc..." sein müsste?
    Wird der dann nicht extrem lang?
    Klar könnte man die Loginzeit jede Stunde neu setzen und das Cookie leeren, aber die neuen Threads, die innerhalb der Stunde gelesen werden, können ja doch recht viele werden (wie z. B. hier im Forum).

    Oder gibt es da noch eine bessere Lösung?
    mfg - sagg

  • #2
    einfach alle Threads auflisten und die markieren, die neu sind? Ansonsten gibt es noch die nette Spielerei IN

    WHERE id IN (1, 2, 3)
    kommt gleich mit
    WHERE id = 1 OR id = 2 OR id = 3

    bzw. besser das Datum mitspeichern...

    [edit]
    ich hatte letztens eine abgewandelte Form davon benutzt:
    http://www.php-resource.de/forum/sho...threadid=59017
    einfach den alten Timestamp in der Session speichern, und dann wenn in einem Thread ein Post mit einem größeren Timestamp existiert und der Post ausgegeben wird, thread und Datum in der Session speichern. Sollte der letzte Post eines Threads dann größer sein, als das Datum was in der Session gespeichert ist, UND größer als das Datum was threadabhängig in der Session gespeichert wird sein, ist da ein neuer Post drin
    Zuletzt geändert von ghostgambler; 07.01.2006, 01:43.

    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
      Danke dir, ich habe zwar von der Startseite des Forums gessprochen, aber im Endeffekt kann man das dort auch sehr gut nutzen.

      Der Tip mit der Session klingt zwar recht plausibel, aber ich meine mir schwirrt da gleich ein Probem durch den Kopf.

      Weil, wenn es zwei neue Beiträge gibt, man zuerst den neueren der beiden liest, wird der andere demzufolge auch als gelesen markiert, weil dessen Timestamp ja geringer ist.
      Und für jeden gelesenen Thread die Session zuzumüllen, na ich weiss ja nicht.
      Oder hab ich da einen Denkfehler?

      Ansonsten bleibe ich bei den Cookie's.

      Trotzdem Danke für dem Tipp mit IN(), die Funktion war mir ganz entfallen, dürfte damit um einiges beser zu realisieren sein.
      mfg - sagg

      Kommentar


      • #4
        Original geschrieben von sagg
        Weil, wenn es zwei neue Beiträge gibt, man zuerst den neueren der beiden liest, wird der andere demzufolge auch als gelesen markiert, weil dessen Timestamp ja geringer ist.
        naja, wenn ein User einen Thread öffnet, dann kann man eigentlich davon ausgehen, dass er alle neuen Posts die da sind auch liest >_<

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

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

        Kommentar


        • #5
          Ich rede nicht von den einzelnen Threads, sondern von der Thread-Übersicht.
          mfg - sagg

          Kommentar


          • #6
            Original geschrieben von sagg
            Ich rede nicht von den einzelnen Threads, sondern von der Thread-Übersicht.
            da wird doch gar nichts verändert, weil der User da den Post noch gar nicht gesehen hat

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

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

            Kommentar


            • #7
              Es wird aber angezeigt, ob es einen neuen Thread in diesem Forum gibt. Somit muss im Prinzip dort genau das selbe ausgelesen werden.
              mfg - sagg

              Kommentar

              Lädt...
              X