[Suche] Besucher von Heute, Gestern und gesamt

EuroCent

Klappstuhl 2.0
Hallo

Wollte mal fragen ich möchte auf meiner Homepage einen Besuchszähler laufen lassen der folgendes ausgibt:

- Besucher Heute: Gesamt
- Besucher Gestern: Gesamt
- Besucher Gesamt: Heute+Gestern

Ich Programmiere mir eine Page zusammen hab aber null Plan wie ich des mit dem Besucherzähler machen soll

Die Page läuft unter anderem auch über MySQL zwecks des Newssystem und Tutorial-Datenbank

Würde mich freuen wenn mir da einer Helfen kann
 
Hi,
zunächst brauchst du zwei MySQL-Tabellen:

1. eine für die Daten

Spalten:
  • count_date (Typ: DATE)
  • count_visitors (Typ: passender INT-Typ (siehe Nummerische Spaltentypen)
  • count_hits (---------------' '--------------)

2. eine weitere für die IPs

Spalten:
  • count_ip (Typ: VARCHAR(15))
  • count_date (Typ: DATETIME)


Bei jedem Aufruft des Scripts musst du nun:
  • die IPs, die die IP-Sperrzeit (hier: 5 Minuten) überschritten haben aus der IP-Tabelle löschen
SQL:
DELETE FROM
    <tbl_name>
WHERE
    UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(count_time) > 300
  • überprüfen ob die IP des Users in der Tabelle steht
  • wenn ja: nur count_hits erhöhen, wenn nicht: count_visitors und count_hits erhöhen
  • den Eintrag des Users in der IP-Tabelle aktualisieren, sprich erst ein UPDATE, wenn dies keine Zeile betroffen hat (überprüfen mit [phpf]mysql_affected_rows[/phpf]), dann eine neue Spalte für den User anlegen

Die Statistiken für heute, gestern und insgesamt erhälst du dann folgendermaßen:

heute:
SQL:
SELECT
    count_visitors,
    count_hits
FROM
    <tbl_name>
WHERE
    count_date = CURDATE()

gestern:
SQL:
SELECT
     count_visitors,
     count_hits
FROM
    <tbl_name>
WHERE
     count_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY)

Woche:
SQL:
SELECT
    SUM(count_visitors) AS count_visitors,
    SUM(count_hits) AS count_hits
FROM
    <tbl_name>
WHERE
    WEEK(count_date) = WEEK(CURDATE())

gesamt:
SQL:
SELECT
    SUM(count_visitors) AS count_visitors,
    SUM(count_hits) AS count_hits
FROM
    <tbl_name>

Gruß
Marvin
 
Zurück