problem mit Zeitberechnung

dobermant

Erfahrenes Mitglied
Guten Tag,

Ich möchte die ungefähre Aufenthaltsdauer eines Besucher meiner Webseiten
rausbekommen. Dafür habe ich eine SQL-Tabelle in der die einzelnen Zugriffe auf die Seiten incl IP und timestamp gespeichert werden.
id, ip, seite, timestamp

das Problem:
nehmen wir an, der Besucher nimmt folgenden Weg.
Newsseite, dann Forum und dann Gästebuch.

WIe bekomme ich jetzt raus, wie lange er auf der Newsseite verweilte, bevor er die Forumseite aufgerufen hat. Normalerweise würde ich jetzt den Timestamp der Newsseite vom Timestamp der Forumseite subtrahieren und die Differenz wäre dann die Aufenthaltsdauer auf der Newsseite.
Mein Problem ist, dass ich innerhalb der Schleife ja noch nicht auf den Timestamp des nächsten Datensatzes(in diesem Falle Forum) zugreifen kann und somit keinen Wert zum Subtrahieren habe.

Hab ich da jetzt einen Denkfehler?

Danke im vorraus
 
du willst von jeder einzelnen seite (news.php, forum.php) wissen, wie lange der besucher drauf war oder willst du wissen wie lange der insgesamt auf deiner seite war?
 
Mein Problem ist, dass ich innerhalb der Schleife ja noch nicht auf den Timestamp des nächsten Datensatzes(in diesem Falle Forum) zugreifen kann und somit keinen Wert zum Subtrahieren habe

Hmm was füe eine Schleife ?

Beim Start vom Script wird eine neuer Eintrag gemacht und danach kann die zeit berechnet werden
 
Ich gehe mal davon aus, dass die „SQL-Tabelle“ Bestandteil eines MySQL-Datenbanksystems ist. Dem zufolge könntest du es wie folgt abfragen:
PHP:
<?php
	[…]
	$query = "
		SELECT
		        MAX(`timestamp`)-MIN(`timestamp`) AS `differenz`
		  FROM
		        `tabelle`
		  WHERE
		        `ip` = '…'
		  GROUP BY
		        `seite`
	";
	[…]
?>
 
melmager hat gesagt.:
Hmm was füe eine Schleife ?

Beim Start vom Script wird eine neuer Eintrag gemacht und danach kann die zeit berechnet werden

@mel
sorry, hab mich wohl etwas undeutlich ausgedrueckt.
es geht in erster Linie um die Abfrage. Das Ergebnis der Abfrage
gebe ich in einer einer Schleife aus, da es sich um mehrere Einträge handelt.


@gumbo
ich habs dein Lösungsansatz noch nicht ganz begriffen, schaue es mir aber gleich an.
danke im vorraus
 
Guten Morgen,
Irgendwie bin ich nicht weiter gekommen.
Gumbos Ansatz scheint der richtige zu nsein, aber ich kann das nicht korrekt umsetzen. Kann sich nochmal einer mein Problem anschauen? Wie muesste die SQL abfrage lauten? So sieht ungefähr mein MYSQL-Ergebniss aus.

+++ zeit ++++++++ ip +++++++ counter_id
1098191425 || 80.58.19.170 || 11
1098191444 || 80.58.19.170 || 42
1098191448 || 80.58.19.170 || 38
1098191485 || 80.58.19.170 || 11
1098191504 || 80.58.19.170 || 42
1098191516 || 80.58.19.170 || 38
1098191560 || 80.58.19.170 || 31
1098191565 || 80.58.19.170 || 31
1098191577 || 80.58.19.170 || 29

Jetzt fehlt mir noch noch die Aufenthaltsdauer, sprich:
Wie lange verweilte der Besucher auf einer Seite(counter_id).
Also ungefähr so:

dauer+++ zeit ++++++++ ip +++++++ counter_id
10s || 1098191425 || 80.58.19.170 || 11
18s || 1098191444 || 80.58.19.170 || 42
15s || 1098191448 || 80.58.19.170 || 38
10s || 1098191485 || 80.58.19.170 || 11
24s || 1098191504 || 80.58.19.170 || 42
13s || 1098191516 || 80.58.19.170 || 38
56s || 1098191560 || 80.58.19.170 || 31
14s || 1098191565 || 80.58.19.170 || 31
12s || 1098191577 || 80.58.19.170 || 29

Besten Dank nochmal
 
Zurück