<?
require_once "maincore.php";
$k = 1;
$visit = USER_IP;
$check = dbquery("SELECT * FROM ".$db_prefix."counter ORDER BY id");
if (dbrows($check) > 0) {
while($checked = dbarray($check)) {
echo $checked['counter']."
";
if ($checked['counter'] = $visit) $k = 0;
}
}
if ($k = 1)
$insert = dbquery("INSERT INTO ".$db_prefix."counter (counter) VALUES ('$visit')");
?>
Planowałem napisanie licznika unikalnych odwiedzin w oparciu o SQL. Problem w tym, że mimo po znalezieniu za pomocą zapytania SELECT adresu IP, nadal dodaje ten sam IP do bazy, za każdym odświeżeniem. Wprowadziłem też testowo:
echo $checked['counter']."
";
Ma to służyć zobaczeniu czy wpisy w ogóle są dodawane rekordy i dobrze dobrany został SELECT. Do tej pory wszystko działa, więc błąd jest gdzieś po tym. Czyli:
if ($checked['counter'] = $visit) $k = 0;
powinno zostać zmienione z 1 na 0, jeśli raz odnajdzie taki sam adres w bazie (przerzuconej do tablicy asocjacyjnej). W przeciwnym razie powinna zostać 1 i dalszy INSERT powinien zostać wykonany bezproblemowo, czyli dodać adres którego brakuje. Ponieważ skrypt jest oparty o core z php-fusion to :
USER_IP - to samo o $_SERVER['REMOTE_ADDR'] - czyli pobieranie adresu IP.