Seite 1 von 1

Neue Beiträge auslesen?

Verfasst: 11.04.2008 15:29
von Hasu0bs
Hallo zusammen
ja, ich weiß hierzu gibt es schon genug Themen hier im Forum, aber keins beschriebt das, was ich ich möchte ;)

Ich möchte einfach für jeden Benutzer einzeln nur die Beiträge oder Themen auslesen, die für ihn neu sind.

Gruß Hasu0bs

Verfasst: 17.04.2008 14:21
von Hasu0bs
Hat keiner ne Idee? Ich steig durch das "Neue Beiträge"-System ja nich durch :(

Gruß Hasu0bs

Verfasst: 22.04.2008 15:54
von Hasu0bs
Hat wirklich keiner ne Idee?!

Verfasst: 25.04.2008 21:33
von Hasu0bs
Ich bin immernoch nich weiter :(
Muss sich doch schonmal jemand Gedanken drüber gemacht haben?!

Verfasst: 04.05.2008 18:35
von Hasu0bs
Guten Abend. Also mittlerweile weiß ich, das die beiden Tabellen forums_track und topics_track damit zu tun haben.
Wenn kein Eintrag mit der jeweiligen user_id vorhanden ist, dann sind zB. alle Foren gelesen.
Aber der Rest bleibt mir ein Rätsel. :( :oops:

Weiß einer nen Ansatz?
Gruß Hasu0bs

Verfasst: 26.05.2008 20:37
von Hasu0bs
Hallo,

ich habs immernoch nicht rausgefunden...

Gruß Hasu0bs

Verfasst: 27.05.2008 22:03
von SowCom
Willst du selber Beiträge von Benutzer auslesen, oder soll das jeder Benutzer für sich tun ?
Falls es um Benutzer geht, dann sollte dir das hier helfen.
"View or mark unread posts" .

Verfasst: 29.05.2008 17:42
von Hasu0bs
Hallo
Okay der Tipp war nich schlecht, dankeschön. Daraus hab ich jetzt folgende sql-Abfrage entnommen:

Code: Alles auswählen

		$sql = 'SELECT p.post_id, p.post_subject, p.post_time, p.poster_id
			FROM ' . POSTS_TABLE . ' p
			LEFT JOIN ' . FORUMS_TRACK_TABLE . ' ft ON (p.forum_id = ft.forum_id AND ft.user_id = ' . $user->data['user_id'] . ')
			LEFT JOIN ' . TOPICS_TRACK_TABLE . ' tt ON (p.topic_id = tt.topic_id AND ft.user_id = ' . $user->data['user_id'] . ')
			WHERE
			(
				p.post_time > tt.mark_time
				OR (tt.mark_time IS NULL AND p.post_time > ft.mark_time)
				OR (tt.mark_time IS NULL AND ft.mark_time IS NULL AND  p.post_time > ' . $user->data['user_lastmark'] . ")
			)                         
                         ORDER BY p.post_time DESC";
Die soll ja eigentlich die neuen Beiträge auslesen. Klappt auch manchmal ganz gut soweit. Nur jetz hab ich grade reingeguggt: Ich persönlich habe 2 neue Beiträge. Der eine neue wird von der Abfrage 3 mal zurückgeliefert, der 2. sogar 12 mal. Außerdem sind noch ganz viele andere Beiträge dabei. (Im phpMyAdmin hat die Abfrage 4100 Ergebnisse geliefert... :( )

Was mach ich denn jetz? :P

Gruß Hasu0bs

EDIT:
Ich habe den Fehler gefunden. Statt:

Code: Alles auswählen

LEFT JOIN ' . TOPICS_TRACK_TABLE . ' tt ON (p.topic_id = tt.topic_id AND ft.user_id = ' . $user->data['user_id'] . ')
muss es heißen

Code: Alles auswählen

LEFT JOIN ' . TOPICS_TRACK_TABLE . ' tt ON (p.topic_id = tt.topic_id AND tt.user_id = ' . $user->data['user_id'] . ')
In dem MOD steht es aber auch so drin. Ich weiß nurnich ob das ein bug ist oder gewollt :D

Gruß Hase