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'"...
Nein m.scatello es funktioniert nicht.
habe jetzt das hier und es funktioniert, ich weis bloß nicht ob das alles richtig ist?
PHP:
$stmt = $mysqli->prepare("SELECT * FROM tabelle WHERE ip LIKE '%".$useip."%' and tid LIKE '%".$_GET['tid']."%'");
$result = $stmt->execute();
$stmt->store_result();
if ($stmt->num_rows == "1") {
echo'Daten vorhanden';
}else{
echo'Daten NICHT vorhanden';
}

geht das auch mit $stmt->bind_param ?
Wenn ja Frage wie muß ich das mit den % zeichen machen ???
weil ohne funktioniert es nicht.
 
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'";
funktioniet

besser wäre aber
"SELECT * FROM tabelle WHERE ip='$useip'";

Ich glaube das LIKE hier falsch ist , du suchst ja nach einer IP und nicht nach IP'S die die gleichen Zeichen haben
 
Lösung
Danke m.scatello es funktioniert.
Ich hatte es auch schon so probiert wie deine Antwort
besser wäre aber
muß wohl einen Fehler drin gehabt haben.
Hier jetzt mal mein Code:
PHP:
$stmt = $mysqli->prepare("SELECT * FROM tabelle WHERE ip = ? and tid = ?");
$uips = trim($useip);
$ip= $mysqli->real_escape_string ($uips);
$tids = IntVal($_GET['tid']);
$tid= $mysqli->real_escape_string ($tids);
$stmt->bind_param('si', $ip,$tid);
$result = $stmt->execute();
$stmt->store_result();
if ($stmt->num_rows == "1") {
echo'Daten vorhanden';
}else{
echo'Daten NICHT vorhanden in db speichern';
}
So wollte ich es haben und so funktioniert es auch!

Danke schön nochmal.
 
Zurück