Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

SQL-Abfrage für Statswert Ausstiegseiten

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
marky
PostRank 3
PostRank 3
Beiträge: 88
Registriert: 24.07.2005, 09:12

Beitrag von marky » 24.05.2006, 21:31

Hallo,

ich entwickle gerade eine Statssoftware für mein CMS - es wird der Aufruf inkl. Datum, IP, Seite, Auflösung geloggt, jetzt würde ich gerne eine Liste der Top Einstiegs- und vorallem Ausstiegsseiten ausgeben und komme einfach nicht drauf, wie ich das per sql abfragen könnte.

Kann man da vielleicht jemand mit sql für mysql weiterhelfen bzw. mir einen Ansatz nennen, wie man die Listen umsetzen kann.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Anonymous

Beitrag von Anonymous » 24.05.2006, 21:40

speicher jeweils den timestamp mit und fage den höchsten timestamp bei der jeweiligen ip adresse an und du hast deine ausstiegsseiten...

select ip, max(zeit) group by ip

und dann aufrufen welche url zu dem zeitpunkt von der ip aufgerufen wurde

url= deine seite
ip = IP Adresse
zeit= unix timestamp

oldInternetUser
PostRank 9
PostRank 9
Beiträge: 1250
Registriert: 19.03.2005, 12:52

Beitrag von oldInternetUser » 24.05.2006, 22:02

net(t)worker hat geschrieben:speicher jeweils den timestamp mit und fage den höchsten timestamp bei der jeweiligen ip adresse an und du hast deine ausstiegsseiten...

select ip, max(zeit) group by ip

und dann aufrufen welche url zu dem zeitpunkt von der ip aufgerufen wurde

url= deine seite
ip = IP Adresse
zeit= unix timestamp
@net(t)worker, das ist nicht falsch, aber redundant. Da die Tabelle einen Primärschlüssel 'id' haben sollte, der automatisch hochgezählt wird, leistet dieser bereits das gewünschte. Vorzüge: Integer und bereits mit Index.

Code: Alles auswählen

Select Max(id), ip from tabelle group by ip

Anonymous

Beitrag von Anonymous » 24.05.2006, 22:27

oldInternetUser hat geschrieben:
net(t)worker hat geschrieben:speicher jeweils den timestamp mit und fage den höchsten timestamp bei der jeweiligen ip adresse an und du hast deine ausstiegsseiten...

select ip, max(zeit) group by ip

und dann aufrufen welche url zu dem zeitpunkt von der ip aufgerufen wurde

url= deine seite
ip = IP Adresse
zeit= unix timestamp
@net(t)worker, das ist nicht falsch, aber redundant. Da die Tabelle einen Primärschlüssel 'id' haben sollte, der automatisch hochgezählt wird, leistet dieser bereits das gewünschte. Vorzüge: Integer und bereits mit Index.

Code: Alles auswählen

Select Max(id), ip from tabelle group by ip
primärschlüssel sollte natürlich vorhanden sein, muss aber nicht unbedingt ein hochzählendes int feld sein.... auch habe ich es schon erlebt, dass nicht unbedingt hochgezählt wurde, sondern die id von gelöschten datensätzen wieder verwendet wurde... also doch besser direkt dem timestamp nutzen...

oldInternetUser
PostRank 9
PostRank 9
Beiträge: 1250
Registriert: 19.03.2005, 12:52

Beitrag von oldInternetUser » 24.05.2006, 22:48

net(t)worker hat geschrieben:primärschlüssel sollte natürlich vorhanden sein, muss aber nicht unbedingt ein hochzählendes int feld sein.... auch habe ich es schon erlebt, dass nicht unbedingt hochgezählt wurde, sondern die id von gelöschten datensätzen wieder verwendet wurde
Eine Tabelle mit so einer Datenstruktur nicht mit einem automatisch hochzählenden Schlüssel auszustatten - na ja, 'grob fahrlässig'. Und gelöschte IDs wiederzuverwenden setzt auch irgendeinen gesonderten Eingriff voraus, auch das ist für mich bei so einer Datenstruktur nicht nachvollziehbar.

marky
PostRank 3
PostRank 3
Beiträge: 88
Registriert: 24.07.2005, 09:12

Beitrag von marky » 24.05.2006, 23:29

Hallo,

danke für die Tipps, die Abfrage bedeutet aber auch, dass jede IP nur einmal gezählt wird.

Ich, der mit einer festen IP ins Netz geht, würde bei den Stats nur ein einzigstes Mal gewertet, immer mit dem letzten "Auftritt".

Gibt es da nichts genaueres ohne gleich eine Ein-Eindeutige-Session per Cookie zu verwenden, was ich eigentlich nicht möchte.

Anonymous

Beitrag von Anonymous » 25.05.2006, 01:31

kannst das gane ja tageweise auswerten, am besten immer so um 4 Uhr rum den Übergang von einem tag zum anderen vollziehen in der Auswertung.... da dürfte am wenigsten los sein...

wenn du es richtig genau haben willst musste wirklich mit eindeutigen sessions arbeiten...

wenn du aber nur die einstiegs und ausstiegsseite haben möchtest, also den weg dazwischen garnicht auswerten möchtest, machste pro "session" einen db eintrag, dort speicherste die erste Seite, die zuletzt besuchte und den zeitpunkt des letzten besuches... bei jedem seiten aufruf machste ein update

update urls set lasturl='".$url."', zeit=$jetzt where ip='".$ip."' and zeit > ($jetzt - $sessiondauer)

$jetzt wäre in diesem Fall ein unix timestamp, also int, da lässt sich am besten mit rechnen.. :wink:

dann musste nur noch überprüfen ob ein Datensatz verändert wurde, falls nicht musste einen neuen Datensatz für ne session anlegen...

und so haste denn für jede session einen Datensatz mit einstiegs- und ausstiegsseite....

marky
PostRank 3
PostRank 3
Beiträge: 88
Registriert: 24.07.2005, 09:12

Beitrag von marky » 25.05.2006, 09:49

Hallo,

danke - genau so kompliziert wollte ist das nicht machen, vorallem steigt die DB-Menge durch die Session massiv an und die SQL-Abfragen dauern jetzt schon ewig, weil vieles nicht wirklich indexiert abläuft. Muss ich mal sehen, wie ich da weiter vorgehe, ich will ja nicht bei jedem Klick die Datenbank abschiessen, wenn da mal ein paar Millionen Einträge drin sind - da mysql leider nicht wirklich stark.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag