Philipp Hasenfratz: /MySQL

Beitrag lesen

Halihallo Stabmaster

ich wollte mir eine ausführliche statistik bauen.

Hälst du die für derart ausführlich?

darin enthalten sein sollte:

  • Besucher gesamt
  • Besucher heute
  • Besucher gestern

Was Cheatah fragt: Was ist in deinen Augen ein Besucher?

Einer der über Cookies identifiziert wird?
  |
  +-- nicht jeder hat Cookies aktiviert und du wirst dadurch
      unweigerlich mehr zählen, als tatsächlich vorbeigeschaut haben.

Einer der über IP oder Browsermerkmale identifiziert wird?
  |
  +-- ganze Firmennetzwerke haben dieselbe IP und/oder
      Browsermerkmale, so wirst du unweigerlich auch falsche Daten
      zählen.

Einer der mindestens 20 Minuten, mindestens 30 Minuten, wenigstens
einmal pro Tag, mindestens einmal pro Woche, mindestens eine
Browsersitzung, ... auf deiner Website war?

_Du_ musst dir wirklich ersteinmal klar werden, was du als "Besucher"
wertest, denn dieser Begriff (s. Cheatah) existiert im HTTP nicht.

  • Online zurzeit (ich weis, ist nicht so toll, soll aber dabei sein)

Wie willst du in einem zustandslosen Protokoll wissen, ob derjenige
welche noch auf deiner Seite ist, oder nicht schon lange auf
www.msdn.com nach einem Patch für seinen IE sucht?

  • vll auch noch ne wochenstatistik

Das ist das kleinste Problem ;)
GROUP BY über die Statistik-Tabelle einfach per WEEK(datum_col)

  • wie sollte ich am besten überprüfen, ob der user schon berücksichtigt wurde

Nun, es geht gar nicht. Siehe obengenannte Punkte zum
Begriff "Besucher". Aber die wohl beste "Annäherung" wäre über
Cookies. Bei jedem Zugriff wird ein Cookie gesendet, wurde ein
Cookie empfangen hast du den Besucher schon gezählt. Über die
Expires-Angabe im Cookie hast du eine unverlässliche Möglichkeit die
Zeitdauer indem der Besucher als Besucher gilt festzulegen. Lässt du
diese weg gilt der Cookie genau die Browsersitzung lang und du misst
die sogenannten (Browser-)Sessions. Setzt du Expires auf einen Tag,
hast du die sogenannten UniqueUsers pro Tag.

  • wie soll ich die db struktur anlegen mit allen berücksichtigungen

Das "Besucher-Online"-Zeug wirft eine einfache Lösung über den
Haufen. Liessest du es weg, erspart es dir einiges an Sorgen.

Um Besucher-Online zu messen, müsstest du wie Cheatah sagt, jedem
Benutzer ein eindeutiges Merkmal zuweisen. Dann zählst du einfach
alle unterschiedlichen Merkmale der letzten sagen wir mal 5 Minuten
und hast einen unwirklich, falschen Wert davon, wie viele "Menschen"/
Besucher sich auf deiner Website grad rumtummeln.

Für alles andere wirds einfach:

Statistik

PRIMARY KEY rep_date  DATE    (Tag)
PRIMARY KEY page_id   INT     (ggf. sollen mehrere Pages überwacht
                               werden?)
rep_pageviews         INT     (Anzahl Pageviews)
rep_sessions          INT     (Anzahl Sessions)
rep_unique_user       INT     (Anzahl Besucher)

Dein Script muss dann einfach beim erkennen eines Unique Users z.B.
den Wert in rep_unique_user beim aktuellen Datum um eins erhöhen.
Genauso für Pageviews und Sessions. So viel Input zu beginn.

PS: bitte kommt mir nicht mit: "geh auf seite xyz und lad dir eins runner".
möchte es gerne selber coden.

Sehr gut. Ich schliesse mich Cheatah's Aussage an.

Ansonsten darf ich http://aktuell.de.selfhtml.org/artikel/programmiertechnik/useronline/index.htm
als Lektüre empfehlen, dann kannst du Cheatah vielleicht etwas besser
verstehen ;)

Viele Grüsse

Philipp