Gelezen/ongelezen systeem?

Gestart doorMiel23 reacties242 weergaven

24 berichten · pagina 2 van 2

Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Pff, werk gewoon door joh. =D
0
Berichten
747
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ja lennard had het ook binnen 2 dagen af, moet makkelijk kunnen. biggrin
0
Miel

Lid · Topicstarter

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
2 Dagen 100 errors..emoOf bedoel je 48 uur?
0
Berichten
27
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Werkt niet bij mij confused
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Wat werkt niet? emo
0
Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik heb nu dit. Forum_posts_read is van de laatste bezoek van de users. Maar nu is er nog niets gelezen, alleen geeft hij wel aan dat het gelezen is. Wat doe ik fout? smile
Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9

$topic_read = DB::table(forum_posts)
->join(forum_posts_read, forum_posts.topic_id, =, forum_posts_read.topic_id)
->where(forum_posts.created_at, >, forum_posts_read.created_at)
->where(forum_posts_read.user_id, =, Auth::user()->id)
->select(forum_posts.topic_id)
->get();

if(count($topic_read) == 0)
$read = TRUE;
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik neem aan dat dit je query dan is:

Quote:
SELECT forum_posts.topic_id FROM forum_posts JOIN forum_posts_read ON forum_posts.topic_id=forum_posts_read.topic_id WHERE forum_posts.created_at > forum_posts_read.created_at AND forum_posts_read.user_id=1

Wat staat er in je tabel met forum_posts_read ? Volgens mij gaat dit alleen zo werken als je voor elke combinatie van gebruiker en topic een rij aanmaakt in die tabel..

Quote:
SELECT forum_posts.topic_id FROM forum_posts JOIN forum_posts_read ON forum_posts.topic_id=forum_posts_read.topic_id

Met dit stukje haal je het topic_id van elke post op waarvan dat topic_id ook in de forum_posts_read staat.

Dus stel dat dat topic_id nog niet gevonden wordt in de forum_posts_read, dan denkt hij dat het gelezen is..
0
Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Sjoerd schreef:
Ik neem aan dat dit je query dan is:
Quote:
SELECT forum_posts.topic_id FROM forum_posts JOIN forum_posts_read ON forum_posts.topic_id=forum_posts_read.topic_id WHERE forum_posts.created_at > forum_posts_read.created_at AND forum_posts_read.user_id=1

Wat staat er in je tabel met forum_posts_read ? Volgens mij gaat dit alleen zo werken als je voor elke combinatie van gebruiker en topic een rij aanmaakt in die tabel..

Quote:
SELECT forum_posts.topic_id FROM forum_posts JOIN forum_posts_read ON forum_posts.topic_id=forum_posts_read.topic_id

Met dit stukje haal je het topic_id van elke post op waarvan dat topic_id ook in de forum_posts_read staat.

Dus stel dat dat topic_id nog niet gevonden wordt in de forum_posts_read, dan denkt hij dat het gelezen is..

Forum post read staan alle gelezen berichten, dus velden:

user_id,
topic_id
created_at ( datum)

Maar volgensmij heb ik ook een stuk verkeerd gedaan met laatste bezoek van de topic. Ik ga het morgen even opnieuw doen, want ik snap nu mijn eigen code niet meer xD

Nog bedankt! smile
0
Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nu heb ik het ongeveer zo, het lukt bijna.

Bij topics die gelezen zijn krijg ik een unread bij een forum.

Ik heb mijn code even veranderd. Ik werk nu met een raw query en zonder join.

$topicsRead = DB:SMILEYYYYYYYYYYYBEGIN:select(DB::raw("SELECT 
                                                        p.created_at as last_post_topic,
                                                        r.created_at as last_visit
                                            
                                                    FROM 
                                                        forum_topics t,
                                                        forum_posts p,
                                                        forum_posts_read r
                                                    WHERE 
                                                        t.forum_id = ".$forumFetch->id."
                                                    AND
                                                        p.id = t.last_post_id
                                                    AND
                                                        p.created_at > r.created_at
                                                    AND
                                                        r.topic_id = t.id
                                                    ORDER BY p.created_at
                                                    "));
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren