kostenloser Webspace werbefrei: lima-city


Funktion: forum gelese

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    shoebox

    shoebox hat kostenlosen Webspace.

    Hi Leutz

    Ich schreibe momentan mein eigenes kleines Forum und bin an einer stelle angelangt an der mich meine F?higkeiten mit PHP & SQL an meine grenzen bringen oder es ist mein kopf der keine l?sung finden will.

    Nun zum Problem. Es ist ja bei den meisten Foren so das sie ein kleines Icon besitzen das signalisiert wenn ein neuer beitrag geschrieben wurde. Dieses icon ?ndert sich nach dem der user das Thema betrachtet hat. Nun meine Frage. Wie w?rdet ihr das ganze l?sen.

    Hoffe ich k?nnt mir einige N?tzliche tipps liefern.

    Greetz Shoebox
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. s*****k

    hi,

    ich habe mir auch mein eigenes forum geschrieben, und habe es per datenbank gel?st.
    es wird f?r jeden gelesenen post ein eintrag gesetzt.

    wenn er vorhanden ist, hat man den beitrag gelesen, wenn es fehlt, hat man den beitrag noch nicht gelesen,

    nat?rlich habe ich das noch was verfeinert, um die datenbank zu entlasten, wenn du das genauer wissen willst, dann frag ruhig.

    gru?

    simon2k
  4. Also f?r den Beitrag in der Datenbank kasst du so:
    gelesen enum 'ja','nein'. Beim Neuen Beitrag Mahcst nen Insert mit Nein
  5. k****8

    Warum nicht einfach
    Tabelle: user_gelesen
    Dort nur 2 Spalten: ID und Name

    Wenn ein beitrag angeschaut wird, wird gepr?ft, ob er drinnen steht

    Wenn nein, wird er eingetragen
    Wenn ja wird nichts passieren

    Die ID ist die Beitragsid, der Name der Username

    Dass selbe wird bei der ausgabe gemacht, einfach pr?fen ob der jenige drinnensteht

    Wenn geantwortet wird werden einfach alle eintr?ge der Beitragsid aus der Tabelle gel?scht

    W?re aber bei Lima wegen der enormen db-abfragen unbrauchbar

    @gollum1990: Wie soll das Funsen? Das w?rde es nur bringen, wenn dass Forum einen User hat, und der lie?t sowieso alles


    Beitrag ge?ndert am 26.05.2006 17:42 von kai008
  6. c****4

    un warum net ?ber cookies oder eine session??? ID-- gelsen---- normales Bild--- nicht gelesen... neues bild...
  7. c*********c


    un warum net ?ber cookies oder eine session??? ID-- gelsen---- normales Bild--- nicht gelesen... neues bild...



    Weil nicht jeder Cookies akzeptiert, Sessions nicht ewig aktiv sind, und ich mir nicht vorstellen kann, dass jemand eine derartige Datenmenge an der URL umherschleppen m?chte.

    Beitrag ge?ndert am 26.05.2006 18:12 von compactdisc
  8. Autor dieses Themas

    shoebox

    shoebox hat kostenlosen Webspace.


    Warum nicht einfach
    Tabelle: user_gelesen
    Dort nur 2 Spalten: ID und Name

    Wenn ein beitrag angeschaut wird, wird gepr?ft, ob er drinnen steht

    Wenn nein, wird er eingetragen
    Wenn ja wird nichts passieren

    Die ID ist die Beitragsid, der Name der Username

    Dass selbe wird bei der ausgabe gemacht, einfach pr?fen ob der jenige drinnensteht

    Wenn geantwortet wird werden einfach alle eintr?ge der Beitragsid aus der Tabelle gel?scht

    W?re aber bei Lima wegen der enormen db-abfragen unbrauchbar

    @gollum1990: Wie soll das Funsen? Das w?rde es nur bringen, wenn dass Forum einen User hat, und der lie?t sowieso alles


    Beitrag ge?ndert am 26.05.2006 17:42 von kai008


    Das scheint mir die Sinnvollste l?sung und ich werd sie auch bei zeit ausprobieren. Danke. Falls es komplikationen geben sollte frag ich nochmal nach.

    Danke f?r die schnellen antworten

    Greetz Shoe
  9. Also, wer so paranoid ist und Cookies deaktiviert, dem kann man auch nicht helfen.
    Notfalls kann man auch einstellen, dass beim Schlie?en des Browsers alle Cookies gel?scht werden sollen.

    Es geht aber noch sinnvoller:

    Du speicherst zu jedem Post immer einen Timestamp und den selben Timestamp speicherst du auch nochmal aus Geschwindigkeitsgr?nden im passenden Thread-Datensatz und wenn n?tig auch im Forums-Datensatz.
    Ebenso speicherst du den Timestamp der letzten Aktion des Users.

    Jedesmal, wenn ein User jetzt das Forum aufruft, wird ein MySQL Query erzeugt, das die Timestamps vergleicht und das schematisch so aussieht:

    SELECT id,topic,lastposttime,lastpostAuthor FROM threads WHERE ($jetzt_zeit-lastposttime)<$1tag AND lastposttime > $letzte_aktion_des_users_als_timestamp

    So bekommst du dann alle neuen Threads, die aber nicht ?lter als 1 Tag sind (Sonst k?nnten die ein wenig viel werden, wenn der User mal l?nger weg war und alles neue liest der sich eh net durch).

    Die IDs der neuen Threads speicherst du dann per JavaScript in dem Wert window.name, sofern kein Cookie m?glich ist.
    Hier sollte man also 2 M?glichkeiten einbauen. Wenn jetzt JavaScript deaktiviert ist, dann hat der User selber Schuld.

    So, und dann ?bergibst du die ID jedes Threads folgenderma?en:

    <img src="forum.gif" id="t_345345">

    Der Wert von id="" gibt an, welches Forum die Graphik symbolisiert und mit JavaScript kann man dann die IDs, die gespeichert wurden und die IDs der Bilder vergleichen und mit JavaScript dann die Bilder zu "neuer Post" austauschen.

    Ich hoffe, ich habe das einigerma?en verst?ndlich erkl?rt.
  10. Autor dieses Themas

    shoebox

    shoebox hat kostenlosen Webspace.

    Hi leute

    Also wies aussieht ?berfordert das mein kleinhirn einwenig.^^

    Ich habe mir jetzt was zusammen geschustert was aber leider so nicht funktioniert.

    Ich schreibe in eine Datenbank alle ids der beitr?ge
    die ein user gesehen hat und dazu seine user id. dann lasse ich alle beitr?ge abfragen und schaue ob die beitrags id und die user id in der tabelle forhanden sind wenn ja dann soll nichts kommen wenn nicht dann soll z.B. NEW dastehen

    kann mir vielleicht jemand ne funktion coden die genau das macht? oder irgendwie sonst weil ich bekomms umsverecken nicht hin. meine PHP kenntnisse sind gut daher glaube ich das das eher eine verst?ndnis sache ist n der ich festh?nge.

  11. e********l

    Um die vielen Daten in der Session zu speichern falls keine Cookies erlaubt sind, kann man auch noch den Weg ?ber die Serialisierung gehen. Dann wird auch nur ein kurzer Teil an die URL angeh?ngt.
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!