1 up | 2 up | 3 up | 4 up |
^^^ Additional posts ^^^
zorg.ch
#35708 by @ 22.06.2004 15:57 - nach oben -
jo aber nöd das was passiert wenn mo drufklickt, sondern de text vom link, de isch immer 1 zwenig
zorg.ch
#35709 by @ 22.06.2004 15:58 - nach oben -
Bi mir ischer öppe 60 zwenig :-)

gseht zwor guet us:
<br>function getNumunreadposts($user_id) { <br> <br> global $db, $user; <br> <br> if($user->typ != USER_NICHTEINGELOGGT) { <br> $sql = "SELECT count(*) as numread from comments_read where user_id='".$user_id."'"; <br> $rs = $db->fetch($db->query($sql, __FILE__, __LINE__)); <br> $numread = $rs[numread]; <br> <br> $sql = "SELECT count(*) as numposts from comments"; <br> $rs = $db->fetch($db->query($sql, __FILE__, __LINE__)); <br> $numposts = $rs[numposts]; <br> <br> $numunread = ($numposts-$numread); <br> <br> if($numunread > 0) { <br> return '<a href="/forum.php">'.$numunread.' unread posts</a>'; <br> } <br> } <br> } <br>
zorg.ch
#35743 by @ 22.06.2004 18:50 - nach oben -
kann es doppelt gelesene posts geben?

ps: bei mir ist es auch einer, dafuer habe ich auch immer einen ungelesenen post, weil jedesmal beim draufklicken ein sql-error kommt...
zorg.ch
#35751 by @ 22.06.2004 19:23 - nach oben -
ey.
man koennte ein nach bedarf inverses system bauen...
ein schlechter zorgleser und anderer spast hat jenes ungelesene posts. das ist auch gut so, dann muss nur wenig gewaelzt werden, wenn man die anzahl posts zaehlen will etc.
wie waere es aber, wenn jeder user ein flag haette, das eine inverse speicherung ermoeglicht? d.h. es wird gespeichert, welche posts er noch nicht gelesen hat - am besten mit vollautomatischer umstellung, wenn man das erste mal auf "mark all as read" klickt. das wuerde nebenbei fuer die aktiven user die ganze restliche forumsberechnung beschleunigen.
zorg.ch
#35754 by @ 22.06.2004 19:25 - nach oben -
Am besten so wies jetzt ist, aber nur der letzte Monat.
zorg.ch
#35757 by @ 22.06.2004 19:32 - nach oben -
also ich würds db-mässig allgemein auf unread-posts (nicht wie jetzt read-posts) umstellen und dann einfach alle posts, die ein user seit einem monat nicht gelesen hat auch aus der unread-posts table nehmen. weil der kommt 1. sowieso selten oder gar nicht mehr auf die page und wird 2. ganz sicher nicht zig hundert posts lesen, weil die noch markiert sind.
zorg.ch
#35775 by @ 22.06.2004 19:56 - nach oben -
Bin gegen ein "unread_posts"-log, weil dann bei jedem neuen post > 200? INSERTS gemacht werden müssen.
zorg.ch
#35777 by @ 22.06.2004 19:58 - nach oben -
na und? kannst das ja in einem query machen. ausserdem werden posts öfter gelesen als geschrieben. du hast dann also weniger querys.
zorg.ch
#35784 by @ 22.06.2004 20:03 - nach oben -
Okay... einfach dass wir 300 users haben und es immer mehr werden...
zorg.ch
#35787 by @ 22.06.2004 20:10 - nach oben -
wir können das ja so einrichten, dass der eintrag nur für user gemacht wird, die den lastlogin in den letzten 3 monaten hatten. dann sinds nämlich keine 80 users mehr.
zorg.ch
#35802 by @ 22.06.2004 22:46 - nach oben -
Oder der User muss ein Flag setzen, ob er das Forum überhaupt verfolgen will. Wenn er 3 Mnt inaktiv ist, wir im das Flag automatisch entzogen.
zorg.ch
#35837 by @ 23.06.2004 09:03 - nach oben -
Jetzt wirds langsam ein bisschen kompliziert nicht?
Additional posts
zorg.ch
#35795 by @ 22.06.2004 21:29 - nach oben -
datt ist klar. aber bikos vorschlag dazu ist nicht schlecht, und es macht auch weniger arbeit als pro post 30000 posts durchzuackern (und auf irgendeine art und weise macht das die db). wuerde ich auf jeden fall behaupten.
zorg.ch
#35799 by @ 22.06.2004 21:49 - nach oben -
Wenns indexed ist, ists nicht sooo wild. Mit 'EXPLAIN' kann man das ja schoen angucken.
zorg.ch
#35758 by @ 22.06.2004 19:34 - nach oben -
das waere auch eine idee, aeltere posts braucht wohl keiner.
aber dann waere es doch schneller, wenn man die unread posts speichern wuerde, oder?
so ne datenbank kann schliesslich keine unterschiede wie hunderte zu 30000 ausgleichen...
zorg.ch
#35763 by @ 22.06.2004 19:38 - nach oben -
vor allem brauchts weniger speicherplatz, wenn man die unread posts speichern. aber wir speichern im moment die read_posts (!!!). kein wunder hat die table 75MB und ist ständig am wachsen.
zorg.ch
#35793 by @ 22.06.2004 21:25 - nach oben -
ja klar. aber der speicherplatz ist ja eigentlich auch nicht unser primaeres problem (bis darauf, dass das zeuch sicherlich recht haeufig im ram liegt...). waere halt ein netter nebeneffekt.
zorg.ch
#35797 by @ 22.06.2004 21:46 - nach oben -
Falls ueber die Table nie ein full sequential scan gemacht werden muss liegt nur das wirklich benutzte im RAM. Kein Beinbruch also.