Views zählen

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Loddar1

Erfahrenes Mitglied
Hallöchen alle miteinander,
Ich möchte die Views eines Beitrages zählen, etwa so wie hier aber ich weis nicht
wie ich das machen soll.
Beiträge zählen funktioniert, aber wie geht das das jeder User pro Beitrag nur einmal gezählt wird?
Mit IPsperre geht ja wohl über Datenbank nicht oder?
Hat einer einen Tipp wie ich das umsetzen kann?
 

basti1012

Erfahrenes Mitglied
Da brauch man schon etwas mehr Input.
In so ein Forum werden alle Beiträge usw. in einer Datenbank gespeichert.
Da zählt die Datenbank für dich.

Was hast du vor?
Soll das sowas wie ein Forum sein?
Oder ein Besucherzähler?
Unter welcher Voraussetzung soll gezählt werden?
Hast du schon was erstellt, wo dran man weiterarbeiten kann?
 

Loddar1

Erfahrenes Mitglied
Guten Morgen Basti1012,
ja es soll für ein Forum sein.
Das zählen funktioniert.
Aber wie geht das das jeder User nur einmal gezählt wird?
Datenbank wo jeder User eine neue Zeile erhält wo dann die Treads drin speichert?
PHP:
CREATE TABLE `tabelle` (
  `id` int(10) NOT NULL auto_increment,
  `userid` varchar(15) NOT NULL,
  `tread` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`));

Vielleicht so etwas?
 

Yaslaw

n/a
Moderator
Eine Datentabelle (ob DB oder was auch immer).
IP-Adresse, seiten-ID und Timestamp. mehr braucht es darin nicht.
Wenn jemand eine Seite öffnet, die IP Adresse auslesen und in die Tabelle schreiben.

Je nachdem kann man auch bestimmen, dass dieselbe IP nur alle halbe Stunde als neue View zählt. Dann muss man halt vor dem speichern prüfen, wann diese IP das letzte man eingetragen wurde.

Man kann das mehrfachzählen auch über die Session steuern. Dazu müsstest du dich mit PHP-Sessions auseinandersetzen.
 

Loddar1

Erfahrenes Mitglied
Dann währe meine Tabelle doch so richtig,
nur statt "varchar" wahrscheinlich" int(12)" oder?

wird die Tabelle dann nicht zu groß?

in diesem Forum gibt es als Beispiel 23k Aufrufe mal 400 treads
da stelle ich mir eine riesige Tabelle vor.
 

m.scatello

Erfahrenes Mitglied
Dieses Forum hat rund 250.000 Threads, also müssten genauso viele Einträge in einer Datenbanktabelle stehen. Damit kommt eine Datenbank ganz locker ohne jegliche Probleme klar.
 

Loddar1

Erfahrenes Mitglied
Ich habe da noch was gefunden, ist noch php 4.x
kann ich mit diesem Code suchen und wenn Eintrag nicht vorhanden eintragen?
PHP:
$useip = $_SERVER['REMOTE_ADDR'];
$timestamp = time();
$tid = $_GET['tid'];  // von Yaslaw angesprochene seiten_id

$result = mysqli_query ( $mysqli, "SELECT ip, tid, zeit FROM tabelle  WHERE ( ip like '$useip' ) AND (tip like '$_GET[tid]' ) " );
    if (mysqli_num_rows ($result) == 0) {
mysqli_query ( $mysqli, "INSERT INTO tabelle ( ip, tid, zeit ) VALUES ( '$useip', '$tid', '$timestamp' ) " );
   }

ist nur ein Grundgerüst zum testen,
oder liege ich falsch?
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge