User die an diesem Tag da waren auf Homepage

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
manni.mammut
Mitglied
Beiträge: 4
Registriert: 26.10.2004 20:15

User die an diesem Tag da waren auf Homepage

Beitrag von manni.mammut »

Guten Morgen.
vielleicht liegts daran dass es noch so "früh" ist aber ich komm gerade einfach nicht drauf.

Ich kenne den bereits verfügbaren Mod aus dem englischen phpbb forum. Der legt dafür ja extra eine Tabelle an wenn ich das richtig gesehen hab und liest hier dann die Daten aus. In meiner Lösung hab ich einfach die Session-Zeiten in einem Query hierfür verwendet, ist das eine gute Lösung oder sollte man es doch mit einer weiteren Tabelle machen?

Code: Alles auswählen

SELECT * FROM phpbb3_sessions LEFT JOIN phpbb3_users ON phpbb3_users.user_id = phpbb3_sessions.session_user_id WHERE phpbb3_sessions.session_time BETWEEN UNIX_TIMESTAMP(CURDATE()) AND UNIX_TIMESTAMP(CURDATE()) + 24 * 60 * 60 AND phpbb3_sessions.session_user_id != 1
OK, der vorliegende Code gibt aber Nutzer die noch mehrmals in der Session-Tabelle stehen auch mehrmals aus. Wie lautet der Befehl dass er nur einen pro USER_ID wählt (und dann natürlich auch noch den mit der neusten Session-Zeit (hatte es mit GROUP BY phpbb3_sessions.user_session_id und ORDER BY phpbb3_sessions.session_time versucht liefert aber nicht das gewünschte Ergebnis, er gibt zwar nur noch einen Eintrag aus, aber das ist ganz offensichtlich nicht der mit der höchsten session_time).

Ich hoffe ich konnte einigermaßen mein Problem darlegen, fällt mir komischerweise auch gerade schwer das zu formulieren, wie gesagt -- es ist noch früh ;-) ich bitte das zu entschuldigen. Gesucht hab ich natürlich schon aber "unterschiedliche Zeilen MySQL " ist nicht so der optimale Google-Suchbegriff. Ausserdem hoffe ich dass ich das richtige Forum erwischt habe.

Gruß,
manni
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

Code: Alles auswählen

SELECT u.*, s.* FROM phpbb3_sessions as s LEFT JOIN phpbb3_users as u ON u.user_id = s.session_user_id WHERE s.session_time BETWEEN UNIX_TIMESTAMP(CURDATE()) AND UNIX_TIMESTAMP(CURDATE()) + 24 * 60 * 60 AND s.session_user_id != 1
GROUP BY u.user_id, s.session_user_id
So würde ich es wenn machen, allerdings glaube ich nicht dass der immer alle anzeigt.
Meine MOD (im übrigen auch auf Deutsch zu erhalten ;) :
http://www.phpbb.de/viewtopic.php?t=148975) benutzt eine Extratabelle.
kein Support per PN
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hi,

die Sessiontabelle "hält" ja nicht ewig die Daten bereit.

Nickvergessen's MOD arbeitet da schon genauer.
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“