Div. Listenabfragen (Lastposts, Nulltopics, watched topics)
Verfasst: 11.10.2006 20:25
Ich wollte auf die Profilseiten der User mehr Links bringen bzw. mehr Infos für andere User oder den User selbst.
In Zukunft würde ich dann z.B. beobachtete Beiträge nur für den eigenen User darstellen User lassen oder Admin/Mods etc.
Aber erstmal ein Beispiel:
http://www.maxrev.de/mgutt-u2.htm
Jetzt habe ich diverse Abfragen erstellt für jede einzelne Liste:
recent posts:
recent created topics:
Diese beiden recents sind eigentlich falsch, denn Sie berücksichtigen nicht die Zeit als der User gepostet hatte, sondern wann die neueste Antwort in einem Topic wo er mal gepostet hatte abgegeben wurde.
watched topics by this user: (wir der Privatsphäre wegen nur für den User selbst in Zukunft geben)
unanswered topics by this user:
Jetzt möchte ich noch Listen erstellen für folgendes:
1. Topics in denen der User die meisten Antworten verfasst hat / am aktivsten war (absteigend) -> bekomme ich überhaupt nicht hin.. was mit GROUP BY?!
2. Topics, die der User als letztes gelesen (angeklickt) hat -> Hier gibt es doch einen Mod zu, soweit ich mich erinnere?!
3. die 10 letzten Bilder, die der User hochgeladen hat (bekomme ich selber hin)
4. die 10 letzten Videos, die der User hochgeladen hat (bekomme ich selber hin)
5. ... jemand eine Idee? Die besten Ideen wollte ich dann filtern ...
(Übrigens mache ich das, weil die Profile unheimlich gut in der Suchmaschine stehen und sonst nicht viele Links auf der Seite zu finden sind.)
Besonders Punkt 1 macht mir im Moment Kopf zerbrechen.
Gruß
In Zukunft würde ich dann z.B. beobachtete Beiträge nur für den eigenen User darstellen User lassen oder Admin/Mods etc.
Aber erstmal ein Beispiel:
http://www.maxrev.de/mgutt-u2.htm
Jetzt habe ich diverse Abfragen erstellt für jede einzelne Liste:
recent posts:
Code: Alles auswählen
SELECT DISTINCT t.* FROM phpbb_topics t, phpbb_forums f , phpbb_posts p WHERE f.forum_id = t.forum_id AND (f.forum_order BETWEEN 0 AND 3060) AND f.forum_id NOT IN(*ausgeschlossene_foren*) AND t.topic_id = p.topic_id AND p.poster_id = 2 ORDER BY t.topic_last_time DESC LIMIT 10
Code: Alles auswählen
SELECT t.* FROM phpbb_topics t, phpbb_forums f WHERE f.forum_id = t.forum_id AND (f.forum_order BETWEEN 0 AND 3060) AND f.forum_id NOT IN(*ausgeschlossene_foren*) AND t.topic_poster = 2 ORDER BY t.topic_last_time DESC LIMIT 10
watched topics by this user: (wir der Privatsphäre wegen nur für den User selbst in Zukunft geben)
Code: Alles auswählen
SELECT t.* FROM phpbb_topics t, phpbb_forums f , phpbb_topics_watch tw WHERE f.forum_id = t.forum_id AND (f.forum_order BETWEEN 0 AND 3060) AND f.forum_id NOT IN(*ausgeschlossene_foren*) AND tw.topic_id = t.topic_id AND tw.user_id = 2 ORDER BY t.topic_last_time DESC LIMIT 10
Code: Alles auswählen
SELECT t.* FROM phpbb_topics t, phpbb_forums f WHERE f.forum_id = t.forum_id AND (f.forum_order BETWEEN 0 AND 3060) AND f.forum_id NOT IN(*ausgeschlossene_foren*) AND t.topic_poster = 2 AND t.topic_replies = 0 AND t.topic_moved_id = 0 ORDER BY t.topic_time DESC LIMIT 10
Jetzt möchte ich noch Listen erstellen für folgendes:
1. Topics in denen der User die meisten Antworten verfasst hat / am aktivsten war (absteigend) -> bekomme ich überhaupt nicht hin.. was mit GROUP BY?!
2. Topics, die der User als letztes gelesen (angeklickt) hat -> Hier gibt es doch einen Mod zu, soweit ich mich erinnere?!
3. die 10 letzten Bilder, die der User hochgeladen hat (bekomme ich selber hin)
4. die 10 letzten Videos, die der User hochgeladen hat (bekomme ich selber hin)
5. ... jemand eine Idee? Die besten Ideen wollte ich dann filtern ...
(Übrigens mache ich das, weil die Profile unheimlich gut in der Suchmaschine stehen und sonst nicht viele Links auf der Seite zu finden sind.)
Besonders Punkt 1 macht mir im Moment Kopf zerbrechen.
Gruß