WulfmanGER
Commander
- Registriert
- Juli 2005
- Beiträge
- 2.298
Hallo in die Runde,
Denkblockade - bekomme es gerade nur megakomplex hin (so komplex das ich nach der 3. While-Verschachtelung mit zig "Hilfsvariablen" aufgehört habe [30 Zeilen PHP und kein Ergebnis])
Ich habe u.a. UserID, SessionID (die ist nur 3stellig und daher wiederholbar - in einer anderen Session!) und ein TimeStamp (lastSeen).
Ich suche jetzt eine Lösung wie ich "lastSeen" so zusammenfassen das ich die Verweildauer in sekunden ermitteln kann...
Quelle Tabelle (sortiert nach lastSeen):
In die Zieltabelle soll rein (eine Zeile):
firstSeen = 2022-05-22 18:03:37
lastSeen = 2022-05-22 18:12:03
verweildauer = ~500s (jetzt nicht ausgerechnet )
Aus den 4 Datensätzen oben möchte ich somit nur noch 2 machen (session_id 12 und 5)
Wenn das lastSeen zu komplex ist - ist das aber auch kein Problem - Hauptsache firstSeen und Verweilsdauer ... das "von bis" kann ich mir damit in der PHP-Ausgabe dann ja auch ausrechnen.
Hier komme ich nur auf komplexe Lösungen (mit vielen Whiles, IFs und temp-variablen und min. eine Zwischen-Tabelle) ... wenn man Logfiles mit div. Tools auswerten hat man auch nur ein Timestamp und ermitteln damit wie lang jemand online war. Vermutlich kann php/mySQL sowas schon von hause aus?
Im Prinzip suche ich sowas wie: GROUP BY lastSeen ... aber nur für Aufeinanderfolgende Datensätze mit gleicher session_id.
Hat da jemand einen Ansatz?
Grüße
PS: die QuellTabelle hat noch mehrere "WHERES" die einen Datensatz "unique" mache. Die session_id ist 3stellig - kann also im Gesamtlog oder über mehrere server also mehrfach da sein - sogar von der gleichen Person und im WorstCase wechselt der User den Server und hat die gleiche session_id wie auf dem vorherigen Server. 3 Werte (UserID, Application, Session_ID) müssen also übereinstimmen (WHERE / AND) damit ich das lastSeen einer Session zuordnen kann. Hab das oben nur etwas komprimierter zusammengefasst.
Denkblockade - bekomme es gerade nur megakomplex hin (so komplex das ich nach der 3. While-Verschachtelung mit zig "Hilfsvariablen" aufgehört habe [30 Zeilen PHP und kein Ergebnis])
Ich habe u.a. UserID, SessionID (die ist nur 3stellig und daher wiederholbar - in einer anderen Session!) und ein TimeStamp (lastSeen).
Ich suche jetzt eine Lösung wie ich "lastSeen" so zusammenfassen das ich die Verweildauer in sekunden ermitteln kann...
Quelle Tabelle (sortiert nach lastSeen):
Code:
UserID| session_id | lastSeen
A123 | 12 | 2022-05-22 18:03:37
A123 | 12 | 2022-05-22 18:06:14
A123 | 12 | 2022-05-22 18:12:03
A123 | 5 | 2022-05-22 18:15:03
In die Zieltabelle soll rein (eine Zeile):
firstSeen = 2022-05-22 18:03:37
lastSeen = 2022-05-22 18:12:03
verweildauer = ~500s (jetzt nicht ausgerechnet )
Aus den 4 Datensätzen oben möchte ich somit nur noch 2 machen (session_id 12 und 5)
Wenn das lastSeen zu komplex ist - ist das aber auch kein Problem - Hauptsache firstSeen und Verweilsdauer ... das "von bis" kann ich mir damit in der PHP-Ausgabe dann ja auch ausrechnen.
Hier komme ich nur auf komplexe Lösungen (mit vielen Whiles, IFs und temp-variablen und min. eine Zwischen-Tabelle) ... wenn man Logfiles mit div. Tools auswerten hat man auch nur ein Timestamp und ermitteln damit wie lang jemand online war. Vermutlich kann php/mySQL sowas schon von hause aus?
Im Prinzip suche ich sowas wie: GROUP BY lastSeen ... aber nur für Aufeinanderfolgende Datensätze mit gleicher session_id.
Hat da jemand einen Ansatz?
Grüße
PS: die QuellTabelle hat noch mehrere "WHERES" die einen Datensatz "unique" mache. Die session_id ist 3stellig - kann also im Gesamtlog oder über mehrere server also mehrfach da sein - sogar von der gleichen Person und im WorstCase wechselt der User den Server und hat die gleiche session_id wie auf dem vorherigen Server. 3 Werte (UserID, Application, Session_ID) müssen also übereinstimmen (WHERE / AND) damit ich das lastSeen einer Session zuordnen kann. Hab das oben nur etwas komprimierter zusammengefasst.