Есть пример как создать счётчик посещаемости сайта на PHP. Но каждый день он обнуляется. Может можно его как-то переделать, чтобы считать статистику и по каждому дню отдельно, и выводить общее количество посетителей за всё время?
<?php
// Хост (обычно localhost)
$db_host = "localhost";
// Имя базы данных
$db_name = "test_db";
// Логин для подключения к базе данных
$db_user = "root";
// Пароль для подключения к базе данных
$db_pass = "";
$db = mysqli_connect ($db_host, $db_user, "", $db_name) or die ("Невозможно подключиться к БД");
// Указываем кодировку, в которой будет получена информация из базы
@mysqli_query ($db, 'set character_set_results = "utf8"');
// Получаем IP-адрес посетителя и сохраняем текущую дату
$visitor_ip = $_SERVER['REMOTE_ADDR'];
$date = date("Y-m-d");
// Узнаем, были ли посещения за сегодня
$res = mysqli_query($db, "SELECT `visit_id` FROM `stats_visits` WHERE `date`='$date'") or die ("Проблема при подключении к БД");
// Если сегодня еще не было посещений
if (mysqli_num_rows($res) == 0)
{
// Очищаем таблицу ips
mysqli_query($db, "DELETE FROM `stats_ip`");
// Заносим в базу IP-адрес текущего посетителя
mysqli_query($db, "INSERT INTO `stats_ip` SET `ip_address`='$visitor_ip'");
// Заносим в базу дату посещения и устанавливаем кол-во просмотров и уник. посещений в значение 1
$res_count = mysqli_query($db, "INSERT INTO `stats_visits` SET `date`='$date', `hosts`=1,`views`=1");
}
// Если посещения сегодня уже были
else
{
// Проверяем, есть ли уже в базе IP-адрес, с которого происходит обращение
$current_ip = mysqli_query($db, "SELECT `ip_id` FROM `stats_ip` WHERE `ip_address`='$visitor_ip'");
// Если такой IP-адрес уже сегодня был (т.е. это не уникальный посетитель)
if (mysqli_num_rows($current_ip) == 1)
{
// Добавляем для текущей даты +1 просмотр (хит)
mysqli_query($db, "UPDATE `stats_visits` SET `views`=`views`+1 WHERE `date`='$date'");
}
// Если сегодня такого IP-адреса еще не было (т.е. это уникальный посетитель)
else
{
// Заносим в базу IP-адрес этого посетителя
mysqli_query($db, "INSERT INTO `stats_ip` SET `ip_address`='$visitor_ip'");
// Добавляем в базу +1 уникального посетителя (хост) и +1 просмотр (хит)
mysqli_query($db, "UPDATE `stats_visits` SET `hosts`=`hosts`+1,`views`=`views`+1 WHERE `date`='$date'");
}
}
// Извлекаем статистику по текущей дате
$res = mysqli_query($db, "SELECT `views`, `hosts` FROM `stats_visits` WHERE `date`='$date'");
$row = mysqli_fetch_assoc($res);
echo '<p>Уникальных посетителей: ' . $row['hosts'] . '<br />';
echo 'Просмотров: ' . $row['views'] . '</p>';
?>