Pff, werk gewoon door joh. =D
Gelezen/ongelezen systeem?
Ja lennard had het ook binnen 2 dagen af, moet makkelijk kunnen. 

2 Dagen 100 errors..
Of bedoel je 48 uur?
Of bedoel je 48 uur?Werkt niet bij mij 

Wat werkt niet? 

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? 
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;

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;
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..
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..
Sjoerd schreef:Quote:Ik neem aan dat dit je query dan is:
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!

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.
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
"));