Forum Neue Beiträge?

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

  • Forum Neue Beiträge?

    Hi also wollte mir mal nen kleines Forum coden (ja ist gibt genügend naund hat schon seine Gründe)
    Und mache mir gerade Gedanke dadrüber wie man am besten das mit den Neuen Beiträgen realisiert hatte folgende idee

    für die Hauptseite wo die Foren aufgelistet werden
    die Tabelle:

    Code:
    id | Name | desc | datum | sort
    so am anfang der Hauptseite wird dann in einem Cookie die aktuelle Uhrzeit mit dem Datum gespeichert wenn jemand ein Thema schreibt wird dann im feld datum das Datum gespeichert so das man dann auf der Hauptseite dann abfragen kann ob das Datum im Cookie das im Forum endspricht bzw älter ist wenn ja dann eben neuer Beitrag so problem ist irgendwie muss ich dann noch abfragen ob er es dann gelesen hat aber wie?oder gibt es eine besser möglichkeit
    in einer Db das zu speichern dürfte viel zu groß werden

    hoffe das ihr mir hier helfen könnt
    mfg
    et

  • #2
    wieso nicht in die DB, du machst einfach 'ne Tabelle mit

    userid | threadid | dtread

    und speichert die gelesenen Beiträge darein. Diese Einträge löscht du einfach, wenn das Datum älter als z.B. 3 Monate, dann bleibt die Tabelle immer schlank. Für ungelesen machst du so: wenn in obigen Tabelle keine Eintragung für den betreffenden User und Thread existiert und wenn der Thread nicht älter als 3 Monate ist. Alles was älter als 3 Monate sind, sind als gelesen zu betrachten, oder meinst du im Ernst, dass der User sich nach 6 Monate Abwesenheit alles liest

    Kommentar


    • #3
      hatte auch schon so eine idee bzw vorschlag

      Code:
      tid | uid | datum
      PHP-Code:
      $result=mysql_query("
                           SELECT
                           *
                           FROM
                        threadvisits
                          WHERE
                        tid ='"
      .$tid."'
                          AND
                            uid ='"
      .$uid."'     
                          " 
      );
      while(
      $row mysql_fetch_assoc($result))
          {    
           
      $thread_date $row['datum'];
          }

      if (
      $lastvisit <= $thread_date)
      {
      //Neu
      }
      else
      {
      //alt


      aber bei mehreren threads und usern dürfte das doch etwas viel speicher werden und die perfomens dürfte doch auch dadrunter leider oder merkt man das so gut wie kaum ? bei z.B 1000 Usern 20000 threads? wenn da dann mehrere abfragen von verschiedenen Usern sind ?


      edit:

      bzw wegen deinem vorschlag ich soll wenn der user ein thread gelesen hat es da drinne mit datum speichern und dann fragen ob ein neueres datum drinne steht oder garkeins und wenn eins von beiden zustimmt eben neuer beitrag?

      Kommentar


      • #4
        1. JOIN sollst du anwenden, schau dir den Sticky Thread im SQL-Sub-Forum an; mit Join bekommst du auf einen Schlag alle ungelesenen Beiträge

        2. du prüfst nicht das Thema sondern die Antwort darauf

        3. du prüfst entweder auf Existenz des Datensatz in threadvisits oder auf gelesenes Datum im Vergleich zu Antwortdatum

        4. Wenn du deine Abfragen richtig formuliert, wird MySQL schon verkraften

        Kommentar

        Lädt...
        X