![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Benutzer
Registriert seit: 28.12.2005
Beiträge: 35
|
Hallo zusammen,
ich bastle grad an einem kleinen Versuchsprojekt - wie schon in der Überschrift zu lesen, an einem Counter. In diesem Fall geht es um einen kleinen einfachen Multicounter (Counterdienst). Die Thematik Anmeldung und optische Ausgabe ist erstmal völlig egal. Mir geht es primär um die möglichst einfach Datenspeicherung. Der Dienst soll keine ausführlichen Statistiken enthalten. Mit folgenden Werten soll gearbeitet werden: - Besucher gestern - Besucher heute - Besucher gesamt - Besucher Online Damit nicht jeder reload gezählt wird soll eine einfache IP-Reloadsperre eingebaut werden. Nun stellt sich die Frage wie sowas performancetechnisch am besten hinzubekommen ist. Meine Idee wäre hier nun mit 2 Tabellen zu arbeiten: 1. Tabelle für die Onlineuser und die Reloadsperre Felder: ID (counter-ID), IP-Adresse, Timestamp 2. Tabelle für die Werte gestern/heute/gesamt Felder: ID, gestern-tag, gestern-wert, heute-tag, heute-wert, gesamt-wert So lange die Kombination ID + IP in Tabelle 1 schon vorhanden ist und der Timestamp nicht älter als X Minuten (Reloadsperre) ist, wird der Timestamp stetig mit erhöht und keine Veränderung in der zweiten Tabelle vorgenommen. Bei den "Tag"-Feldern in der zweiten Tabelle kommt jeweils der Tag (Datum) rein, für das der Wert gilt. Entspricht dieser Tag nicht mehr dem aktuellen Tag (für heute bzw. gestern), wird der Wert resettet und der aktuelle Tag reingeschrieben. Soweit so gut - comments? hab ich was übersehen? Nun stellt sich die Frage über die detaillierte Vorgehensweise... Der erste Query muss prüfen ob die Kombination ID + IP in Tabelle 1 vorhanden ist und (wenn ja) wie alt der Timestamp ist. Wenns um das reine Vorhandensein (ohne Timestamp) ginge, würde ich das über "ON DUPLICATE KEY" lösen, aber wie bringe ich da den Timestamp unter? Oder evtl. doch erstmal die User online auslesen mit "SELECT * FROM log WHERE ID = 'x' AND timestamp > 'y'" und dann per php prüfen und danach ggf. inserten/updaten? Ich dreh mich bei meinen Überlegungen gerade etwas im Kreis und würd mich über einen Gedankenanstoß freuen. Sorry wenn das alles komplett irsinnig erscheint, aber ich bin php-technisch immer noch sehr grün hinter den Ohren. Evtl. gibt's auch ne ganz andere Lösung dafür? Danke! |
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 18.08.2005
Ort: Dortmund
Beiträge: 166
|
Hast Du Dir das hier
schon mal angesehen? So als Inspiration... |
|
|
|
|
|
Nach oben #4 | ||
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
|
Zitat:
Wollt ich nur mal so angemerkt haben. Zitat:
Grüße, Ben. |
||
|
|
|
|
|
Nach oben #5 | ||
|
Benutzer
Registriert seit: 28.12.2005
Beiträge: 35
|
Zitat:
Zitat:
|
||
|
|
|
|
|
Nach oben #6 | |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
|
Zitat:
Bzgl. SQL-Statement. Ich wollte damit aussagen, dass ich keine SQL-Lösung dafür kenne, so dass ich letztlich den Weg übr PHP gehen würde. Grüße, Ben. |
|
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| frage zu counter | kampfgnom | JavaScript und AJAX | 10 | 01.06.2007 20:46 |
| Logfile Analyse oder Counter | cspiegl | Tools, Server, Betriebssysteme | 6 | 13.01.2007 14:51 |
| [PHP] Counter mit mysql (kurz und knackig) | Jann Hendrik | Tutorials | 6 | 13.11.2006 08:45 |
| Counter | michi | Gesuche | 29 | 23.07.2006 21:32 |