Avatar billede labisama Nybegynder
20. maj 2009 - 17:43 Der er 11 kommentarer og
1 løsning

Vis ændringer siden sidst i fx. forum

Hej med jer!

Jeg har lavet mit eget forum i PHP/mysql, og har tænkt mig at udvidde scriptet.

Jeg vil gerne vise brugeren hvis der er kommet nye indlæg eller emner siden han sidst besøgte forummet. Evt. så kunne de emner hvor der er sket nyt i siden sidst, være med rød-skrift eller noget.

Jeg havde tænkt på at man kunne gøre det med COOKIES? Men lige på hvilken måde er jeg lidt i tvivl om.

Jeg søger altså gode ideer/erfaringer ang. udførelsen af overstående, og ikke selve scriptet.

På forhånd tak!
Avatar billede keysersoze Ekspert
20. maj 2009 - 17:48 #1
en cookie er en mulighed - men så virker det jo kun hvis brugeren sidder ved samme PC og ikke har slettet cookies.

groft set er der nok 2 måder at løse det på - en mulighed er at sammenligne sidste login-dato (gemt i en session) med datoen på seneste tråd i de enkelte forumposts og en anden er at lade en tabel styre hvad der er læst og ikke læst ved at fylde tabellen op med brugerid og postid og så slette derfra når det er nødvendigt.
Avatar billede zkill Nybegynder
20. maj 2009 - 22:07 #2
Jeg vil mene det smarteste ville være at når brugeren skriver eller eller tilmelder sig en tråd (hvis den del blir muligt)..
At du laver en relations tabel mellem forums tråden og brugeren..

Når du så laver et select fra Databasen når brugeren logger ind, så som Keysersoze skrev, så laver du et udtræk hvor du tjekker op på om brugeren er koblet på emnet og om datoen for sidste nye emne er nyere end brugerens sidste login..

Dette ka du gøre med en left join og på den måde, får du alle forumstrående, og left joiner du med f.eks bruger, vil der kun være bruger informationer ved de emner hvor der er nyt..
(Kommer jo så meget an på hvordan dit forum er opbygget :)

Men helt bestemt, ha det i din database, for så ka du lave udtræk simpelt..
Avatar billede labisama Nybegynder
21. maj 2009 - 01:10 #3
I kommer med nogle rigtige gode ting.

Jeg tænker bare på om join-funktionen ikke er meget ressource krævende hvis der nu er mange indlæg, og mange brugere?

#1 > Du mener at der skal genereres en session med dagsdato så snart brugeren går ind på forum siden. Og så køre nogle if-sætninger igennem koden?
Avatar billede keysersoze Ekspert
21. maj 2009 - 15:53 #4
jeg ville umiddelbart udføre tjekket i dit script og ikke i forespørgslen - men jo, mere funktionalitet er mere krævende.

nej - med forrige login-dato, det er jo den du skal tjekke op imod. dvs du er nødt til at gemme seneste login (logud?) og ved nyt login gemmes den værdi i en session og du overskriver herefter værdien i databasen.
Avatar billede zkill Nybegynder
21. maj 2009 - 16:59 #5
SQL er jo bygget til at håndtere sådan nogle ting.. så med mindre dit forum er STORT.. og tænker øh bilgalleri stort eller Eksperten stort.. joh, så ka det tage lidt tid hvis din indexsering ik er god..
Men ellers ville du ved hjæl af 2 opslag eller joins, godt kunne gøre det hurtigt.. vil næsten tro hurtiger end koden ka..
Avatar billede labisama Nybegynder
21. maj 2009 - 20:12 #6
Tak begge to.

Jeg har fået tankerne i gang nu.

Svar tak
Avatar billede keysersoze Ekspert
22. maj 2009 - 22:28 #7
svar :)
Avatar billede cronaldo Nybegynder
22. maj 2009 - 22:47 #8
hvorfor ikke bare smide en "lastlogin" dato ind i din tabel med loginoplysninger og så vise brugeren hvilke ting, der er sket siden sidst :) ??

Jeg bruger personligt denne mulighed og det virker faktisk okay :)
Avatar billede labisama Nybegynder
23. maj 2009 - 15:01 #9
Forstår ikke helt hvad du mener "conaldo"?
Avatar billede zkill Nybegynder
25. maj 2009 - 10:11 #10
Tror det han mener er..
Du har jo sidste login for brugeren. Du kan lave et udtræk der kan vise alle emner brugeren har skrevet i, hvor datoen er nyere end brugerens sidste login..
Eneste ulempe jeg ser, er at de så altid vil være viste til han logger af.. altså de nye emner.. men dette kunne løses med en ekstra column, hvor den opdater det emne, når brugeren har set det... eller sådan..
Men tror ik du slipper uden om en relationstabel, hvis du skal have det sådan at emnerne er fremhævet, ind til brugeren går ind og kigger i dem..
Avatar billede cronaldo Nybegynder
25. maj 2009 - 11:59 #11
Jep, det er lige præcis det jeg mener :)
Avatar billede labisama Nybegynder
28. maj 2009 - 22:01 #12
zkill du må også gerne smide et svar. Så lukker jeg.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester