Добрый день! Существует счётчик и он работает. Только он работает таким образом, что он выводит кол-во уникальных посетителей (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 } ?> Код page3.php, выводящий на экран количество уникальных посетителей (hosts) и просмотров (views): 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>'; ?> Просмотры (views) в коде необязательны. Их можно даже удалить из кода. Главное - hosts (уникальные посетители). Есть база данных images c 3 таблицами:
Тут либо добавить и учитывать визиты и хосты в таблице IMG либо создавать для этого дела отдельную таблицу с уникальными ID изображения. Т.к. у тебя изображения выводятся ВСЕ, то никакого смысла не имеет отдельно записывать визиты и хосты. Они всегда будут идентичны друг-другу.
Не обращая внимания на устаревший код (https://www.php.net/manual/ru/function.mysql-connect.php). Если верно понимаю, у тебя есть каталог картинок (ссылок) и ты хочешь подсчитать сколько раз по ним кликнул визитёр(ы). При генерации каталога добавляй поле сессии пользователя к каждой ссылке на картинку (расширь таблицу) и записывай, после останется подсчитать. IP - зачастую не является уникальным идентификатором пользователя. Добавляй кукушку.
В таблице img уже есть уникальный id у каждой картинки. Может быть в таблицу img добавить поле hosts и связать два поля из этой таблицы (id и hosts), а таблицу visits в таком случае удалить? visits (просмотры) в коде и базе данных необязательныы. Их ото всюду можно удалить. Прежде всего важно сколько раз кликнули уникальные посетители (hosts) по каждой отдельной картинке. А viwes (просмотры) в коде и в БД необязательны, их можно вообще поудалять.
Тогда проще добавить только в img поле с визитами, если детали не нужны (типа: клиент, время, другая полезная и не оч. информация). Все что не нужно - удаляем сразу.
1) Тебе нужно идентифицировать пользователя (Сессия и/или кукушка/IP - зачастую не является уникальным идентификатором пользователя) 2) Записать UID (UserID) + click(img) в БД 3) вывести счетчик кликабельности пользователями по картинке.