Avatar billede Slettet bruger
23. april 2005 - 18:04 Der er 9 kommentarer og
1 løsning

Markere posts i forum som læst

Hej!

Jeg er i gang med at udvikle et forum, og nu er jeg nået til markeringen af ulæste posts.
Jeg har kigget på forskellige forums (Invision Power Board, PHPBB, mv.), for at få ideer til hvordan i alverden jeg laver dette, dog uden held.

Jeg kan godt selv klare kodningen, det er bare hvordan præcist jeg får det opbygget mest hensigtsmæssigt...

Nogle ideer?
Avatar billede sungdk Nybegynder
23. april 2005 - 18:08 #1
Lav et nyt felt i din database tabel. Evt. "laest".

Når brugeren så kigger på beskeden, skal du lave en SQL med UPDATE, som evt. sætter laest til "ja".

If ($row[laest] == 'ja') { echo "indlægget er læst!"; }
Avatar billede Slettet bruger
23. april 2005 - 18:09 #2
ikke muligt...
der er flere brugere, og i sagens natur kan jeg ikke lave et felt til hver bruger
Avatar billede sungdk Nybegynder
23. april 2005 - 18:11 #3
Tror ikke du forstod hvad jeg mente så.

Du skal oprette feltet i din "posts" tabel.
Avatar billede Slettet bruger
23. april 2005 - 18:24 #4
ja, men jeg kan jo ikke sætte læst til "ja", for det gælder for alle brugere så... det skal være individuelt for hver bruger.
Avatar billede sungdk Nybegynder
23. april 2005 - 18:26 #5
Ahhh... fremgik det ikke af spørgsmålet.

Men dette kan klares med COOKIES. Når brugeren er inde og læse post, så opret en COOKIE som indeholder id for POST'en.
Avatar billede cpfrande Nybegynder
24. april 2005 - 19:27 #6
Halløjsa,

Kan også fint laves ved en ny tabel i sin database.

Eksempel:
En tabel kaldet "er_laest" oprettes.
Denne indeholder bl.a. følgende attributter:
userId
postId

Så kan du se om en given user har læst en given post. Kører det via cookies vil det kun være en pågældende PC. Dvs. logger brugeren på sin bruger på en anden PC vil den stå som værende ulæst af ham - det er ikke effektivt!

- Kristian
Avatar billede Slettet bruger
28. april 2005 - 13:13 #7
cpfrande. Den metode har jeg prøvet. Dog mener jeg ikke at metoden er optimal. Hvis vi forestiller os et stort forum hvor hver tråd bliver læst af ex. 100 mennesker, samtidigt med at der er 100 nye posts om dagen, vil det generere 100*100 nye poster i din tabel om dagen.
Avatar billede cpfrande Nybegynder
28. april 2005 - 14:23 #8
Halløjsa,

Tjae, du kan ikke gøre det på andre måder så vidt jeg kan se.
Du bliver nød til at gemme oplysninger om hvilke tråde hvilken bruger har læst.

Gemmer du det på brugerens PC skal de gemmes som cookies. Disse cookies kan slettes af brugeren, og så vil din hjemmeside på sin vis sige, at brugeren ingen posts har læst. Cookies ryger også ved en formatering jo. Ligeledes vil cookies have en levetid.

Ved ikke om det ikke er en optimal metode. Hvis det laves korrekt vil det ikke skabe konsistens og det vil også fungerer forholdsvis hurtigt. Alt i alt ser jeg det ikke som et problem.

Det skal dog siges, at du også ser worst-case i ovenstående, da du anser alle brugere læser alle nye posts om dagen. Måske vil kun 12 brugere se 10 af de posts om dagen. Det vil skabe 120, fremfor 10000.

Databaser skal kunne håndterer så mange tubler, så søgningen vil foregå forholdsvis hurtigt alligevel. Der skabes jo også indeks' m.v.

Men er der andre muligheder, vil jeg gerne høre dem... pt. kan jeg ikke se dem. Informationerne om bruger og post skal gemmes et eller andet sted.

- Kristian
Avatar billede Slettet bruger
20. juni 2006 - 18:49 #9
smid et svar... :)
Avatar billede cpfrande Nybegynder
20. juni 2006 - 18:57 #10
Hermed gjort :P
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