Views zählen

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?
 
Lösung
Nein m.scatello es funktioniert nicht.
Kein wunder
Wenn dein error reporting an ist , schätze ich das in Zeile 5, bei PHP 7, das error reporting sich beschweren wird.
Das hast du ja jetzt behoben.
Wenn ja Frage wie muß ich das mit den % zeichen machen ???
weil ohne funktioniert es nicht.
Kommt drauf an was du genau suchst.
Die % Zeichen davor und danach heißen ja das vor den gesuchten Wort ( IP ) und danach stehen darf was will.
Wenn du eine ip hast von 123456789
Dann funktioniert das
SQL:
$useip='123456789';
"SELECT * FROM tabelle WHERE ip LIKE '%$useip%'";
/*
Nachteil = auch diese ip's werden gefunden
123456789987
013123456789
220123456789343
*/
und auch das
"SELECT * FROM tabelle WHERE ip LIKE '$useip'"...
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?
 
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?
 
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.
 
Man kann das mehrfachzählen auch über die Session steuern.
Das ist die bessere Wahl, weil man mit der IP-Adresse nicht eindeutig identifizieren kann. Dass mehrere Leute mit der gleichen IP im Netz unterwegs sind, ist nicht ungewöhnlich, trifft z.B. bei Firmen und Familien zu.
 
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.
 
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.
 
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?
 

Neue Beiträge

Zurück