login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Ongelezen topics

Offline MaZZie - 06/02/2007 04:41
Avatar van MaZZiePHP interesse Ik kom er even niet uit wat ik moet doen.

Ik heb een forum waarbij ik per user wil kijken welk topic er ongelezen is.
Dit wil ik doen door bij het inloggen de tijd van de laatste login uit de database te halen en in een cookie / sessie te zetten en vervolgens de nieuwe tijd in de database te zetten.
De werking spreekt voor zich.

Echter zit ik nu met het volgende probleem.

1. User bekijkt een topic. Maar blijft op ongelezen staan omdat de tijd in het cookie nog altijd voor de tijd van laatst geposte reply is.

2. als 1 is opgelost:
Een user is op de site aant surfen. Op dat moment post iemand een bericht. user had dit topic al gelezen. Hoe komt dit topic nu weer op ongelezen?

6 antwoorden

Gesponsorde links
Offline Ultimatum - 06/02/2007 07:12
Avatar van Ultimatum PHP expert Je moet niet gaan kijken of de tijd verstreken is maar of iemand al naar dat topic is geweest. Je maakt een tabel met forumid, topicid en userid. Als iemand dan een topic bekijkt sla je het forumid en topicid op en ga je controleren of dat overeenkomt met een topic zo ja.. gelezen zo nee.. ongelezen.

Als er een nieuw bericht komt moet je in de database gaan kijken of een gebruiker al een record heeft met hte forumid en topicid van het topic dat net is aangemaakt, zo ja.. verwijderen zo nee.. niets doen

Persoonlijk denk ik dat dit heel traag gaat worden als je veel members hebt want je database met records van gelezen word giga groot en ook het doorspitten of een record verwijderd moet worden zal lang duren als je veel records hebt..
Offline MaZZie - 06/02/2007 21:47
Avatar van MaZZie PHP interesse Daarom is wat jij zegt geen optie.
Ik wil niet per topic een ID opslaan.. Wat is allemaal nog meer mogelijk.
Offline ikkedikke - 06/02/2007 21:50
Avatar van ikkedikke PHP expert dat is eigenlijk het enige.
je hebt namelijk ook dat mensen ergens posten maar andere topics niet lezen.
Offline Nanon - 06/02/2007 21:57
Avatar van Nanon PHP interesse Bij je database structuur van je topics maak je een veld aan (TEXT), deze noem ik even 'bekekendoor'.

Als je user het topic bekijkt laat je eerst controleren of de user al in het 'bekendoor' veld staat. Zo niet dan voeg je deze toe. Ik zou dan het ID van de user opslaan en scheiden met een komma (,), zodat het ongeveer zo eruit komt te zien:

1,2,5,64,75,88,192

Met behulp van explode en wat kennis van for-, while- etc lussen kan je controleren of de user al erin staat. Staat hij er niet in word hij erin gezet, anders niet.
Offline vinTage - 06/02/2007 22:05
Avatar van vinTage Nieuw lid Als je het zo doet, zal dat niet werken met "als er een reactie is".

Tenzei je dan ook alle replyID's op gaat slaan, en dan krijg je uiteindelijk nog een debiel grote database plus dat php voor iedereen zn al dan niet gelezen rij moet gaan exploden en uitlezen.
Offline timo - 06/02/2007 22:35
Avatar van timo PHP ver gevorderde en dan is uiteindelijk de eerder gegeven oplossing zoals eerder gezegd de snelste, kleinste en dus beste oplossing
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s