Lennard:
Ja, ik zal t proberen uit te leggen voor je.
In het
topicoverzicht is tijdens het opbouwen van de pagina de datum beschikbaar van de laatste door jou gelezen post.
Die datum is de hoogste van de volgende waarden:
- de laatste keer dat je op "Markeer alle fora als gelezen" hebt geklikt
- de laatste keer dat je op "Markeer alle topics als gelezen" voor het betreffende forum hebt geklikt
- de laatste keer dat je het topic hebt bekeken
Om te weten wat de laatste post is, hoef je dus alleen maar zoiets te doen:
Codeblok:
1
SELECT id FROM forum_posts WHERE topic_id = t.id AND datum > $datum_die_ik_net_noemde ORDER BY datum ASC LIMIT 1
en dan heb je het id van de laatste post.
Maar dan kom je nog met het probleem dat je wilt weten op welke pagina die post staat, hoe ga je dat doen?
Dat kun je weer zo doen:
Codeblok:
1
SELECT CEIL(COUNT(1) / 15) AS pagina FROM forum_posts WHERE forum_id = t.id AND datum < $datum_die_ik_net_noemde
Als je allebei die resultaten weet, dan kun je de gebruiker naar de goede pagina sturen:
Codeblok:
1
/forum/topic?...&p=$pagina#$id
Maargoed, je moet dan wel die twee queries in één grote query stoppen, omdat je anders met enorm veel queries per request zit, en dat wil ik niet. Ik ben bang dat het daar fout gaat omdat de uitvoertijd dan weer te lang gaat worden naar mn zin.
Maargoed, nu ik dit zo allemaal uit zit te typen bedenk ik me dat ik t best wel eens kan proberen, misschien valt het reuze mee allemaal.
Anyway, hoop dat je t snapt.
Ja, ik denk dat ik het wel snap. Veel succes met het proberen te maken