Добрый день!
Существует счётчик и он работает. Только он работает таким образом, что он выводит кол-во уникальных посетителей (hosts) сразу всей галереи, а не отдельно по каждой картинке. Нужно, чтобы счётчик выводил на экран количество уникальных посетителей (hosts) отдельно по каждой картинке.
Возможно, ошибаюсь, но вероятно, нужно к этому счётчику привязать id картинки, но у меня не получается этого.
Код index.php (галерея):
Код page3.php, выводящий на экран количество уникальных посетителей (hosts) и просмотров (views):
Просмотры (views) в коде необязательны. Их можно даже удалить из кода. Главное - hosts (уникальные посетители).
Есть база данных images c 3 таблицами:
Существует счётчик и он работает. Только он работает таким образом, что он выводит кол-во уникальных посетителей (hosts) сразу всей галереи, а не отдельно по каждой картинке. Нужно, чтобы счётчик выводил на экран количество уникальных посетителей (hosts) отдельно по каждой картинке.
Возможно, ошибаюсь, но вероятно, нужно к этому счётчику привязать id картинки, но у меня не получается этого.
Код index.php (галерея):
PHP:
<?php
mysql_connect('localhost','root','');
$res = mysql_select_db('images');
//var_dump($res);
$res = mysql_query("SELECT * FROM img ORDER BY views DESC");
//var_dump($res);
while (false !== ($row = mysql_fetch_assoc($res))) {
echo "<a href='page3.php?id=".$row[id]."'>$row[name]</a>";
$show_img = base64_encode($row['samfile']);?>
<?php
echo "<p><a href='page3.php?id=".$row[id]."'>"?><img src="data:image/jpeg;base64, <?=$show_img ?>"alt="" width="200" hegiht="200" /></a></p>
<?php } ?>
PHP:
<?php
mysql_connect('localhost','root','');
$res = mysql_select_db('images');
//Получаем IP-адрес посетителя и сохраняем текущую дату
$visitor_ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y-m-d');
//Узнаём, были ли посещения за сегодня
$res = mysql_query("SELECT visit_id FROM visits") or die("Проблема при подключении к БД");
//Если сегодня ещё не было посещений
if (mysql_num_rows($res) == 0)
{
//Очищаем таблицу ips
mysql_query("DELETE FROM ips2");
//Заносим в базу IP-адрес текущего посетителя
mysql_query("INSERT INTO ips2(ip_address) VALUES ('$visitor_ip')");
$res_count = 0;
//Заносим в базу дату посещения и устанавливаем кол-во просмотров и уник. посещений в значение 1
$res_count = mysql_query("INSERT INTO visits(hosts, views) VALUES (1, 1)");
}
//Если посещения сегодня уже были
else
{
//Проверяем, есть ли уже в базе IP-адрес, с которого происходит обращение
$current_ip = mysql_query("SELECT ip_id FROM ips2 WHERE ip_address = '$visitor_ip'");
//Если такой IP-адрес уже сегодня был (т. е. это не уникальный посетитель)
if (mysql_num_rows($current_ip) == 1)
{
//Добавляем для текущей даты +1 просмотр (хит)
mysql_query("UPDATE visits SET views = views + 1");
}
//Если такого IP-адреса ещё не было (то есть это уникальный посетитель)
else
{
//Заносим в базу IP-адрес этого посетителя
mysql_query("INSERT INTO ips2(ip_address) VALUES('".$_SERVER['REMOTE_ADDR']."')");
//Добавляем в базу +1 уникального посетителя (хост) и +1 просмотр (хит)
mysql_query("UPDATE visits SET views = views + 1, hosts = hosts + 1");
}
}
$res = mysql_query("SELECT views, hosts FROM visits");
$row = mysql_fetch_assoc($res);
echo '<p>Уникальных посетителей: ' . $row['hosts'] . '';
echo 'Просмотров: ' . $row['views'] . '</p>';
?>
Есть база данных images c 3 таблицами: