Sönke Tesch: Puffer in Schleife

Beitrag lesen

Ich überlege gerade, wie ich in einer Tabelle die Verweildauer eines Users auf bestimmten Seiten anzeigen kann.
Und zwar trage ich auf jeder Seite(mit PHP) die SessionID den Dateinamen in eine Tabelle(mysql)  ein. In der Tabelle wird außerdem ein Timestamp und eine ID beigefügt.

while($row=mysql_fetch_array($res)){
//Datensatz Timestamp:
$Sekunden=$row[changed]-$last_timestamp;
//Timestamp für nächchsten Datesatz speichern
$last_timestamp=$row[changed];
}

Das ist etwa so die Richtung, in die ich bis jetzt überlegt hatte, aber so geht es nicht, da beim ersten und letzten Datensatz nicht klarkomme, außerdem habe ich die Zeitdifferenz immer zu spät, erst beim nächsten Datensatz.

Die Verweildauer auf der letzten Seite wirst Du nie herausfinden können, weil Du für jede Seite nur einen "Anfang" hast, aber kein "Ende". Als Ende nimmst Du lediglich den Anfang der nächsten Seite an, diese nächste Seite liegt aber auf einem anderen Server (oder hinter dem Aus-Schalter des Computers) und darauf hast Du keinen Zugriff.

Du hast nicht geschrieben, für was Du die Zeiten brauchst, ich nehme deshalb mal eine einfache Ausgabe an. Die Schleife muß dafür etwas erweitert werden:

$row=mysql_fetch_array($res); // erste Seite holen
echo "<li>". $row["url"];     // und Adresse ausgeben
$last_timestamp=$row[changed];

while($row=mysql_fetch_array($res))
 {
  $Sekunden=$row[changed]-$last_timestamp;
  echo $Sekunden;
  echo "<li>". $row["url"];
  $last_timestamp=$row[changed];
 };

Ich hoffe, da ist morgens um zwei kein Denkfehler drin ;)
  soenk.e

PS: Nicht jedes Seitenangucken erzeugt einen Eintrag auf dem Server, insofern ist Deine Statistik wahrscheinlich ungenau, meiner Erfahrung nach um bis zu 10%.