Mam taki oto kod licznika z unikalnymi wejściami na stronę.
W bazie SQL są 4 kolumny
Id (z autoinkrementacją) Data , IP , wpisow
licznik działa tak, że jak wejdzie osoba z ip nie występującym w bazie to dodawany jest nowy wpis natomiast jeśli IP jest już w bazie to sprawdzane jest czy od ostatniego czasu minął ustalony czas w tym przypadku 24h, jeśli minął to dodawany jest nowy rekord, jeśli nie to nie.
Chciałbym zmodyfikować ten kod w taki sposób, żeby dla danego IP został utworzony 1 rekord i aby kolejne wejście nie powodowało dodawania rekordu, tylko modyfikowało bierzący zwiększając liczbę wejść w 4 kolumnie.
<?php
$godziny = 24; //co ile czasu ma zaliczać jednnemu IP odwiedzinę (w godzinach)
include("config.php"); //wczytanie pliku łączenia z bazą danych
$ip = $_SERVER["REMOTE_ADDR"]; //pobieranie adresu IP
$czas = time();
$cofniety_czas = ($czas-(3600*$godziny));
$zapytanie = "SELECT * FROM licznik WHERE IP = '$ip' and data > '$cofniety_czas'";
$zapytanie = mysql_query($zapytanie);
$ile_wpisow = mysql_num_rows($zapytanie); //sprawdzenie ile w bazie danych jest wpisow z tego IP z zeszlych x godzin
if($ile_wpisow<1) //jeżeli ten IP nie był notowany w ciągu ostatnich x godzin
{
mysql_query("INSERT INTO licznik SET data='$czas', IP='$ip'"); //dodaj do bazy danych nowy wpis z tym IP
echo "Dodano nowy wpis!<br />";
}
else //jeżeli ten IP był notowany w ciągu ostatnich x godzin
{
echo "Ta strone odwiedzano w ciagu ostatnich ".$godziny." godzin z Twojego IP.<br />";
}
$zapytanie2 = "SELECT * FROM licznik";
$zapytanie2 = mysql_query($zapytanie2);
$ile_wyswietlen = mysql_num_rows($zapytanie2); //ogólna ilość wpisów licznika
echo "Unikalnych wejsc na strone: ".$ile_wyswietlen;
?>