Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Создание счётчика галереи изображений.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не получается в коде связать два условия.
Pavl
Отправлено: 04 Мая, 2020 - 19:03:29
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Май 2020  


Помог: 0 раз(а)




Добрый день!
В общем, изрядно изменил код и таблицы в БД, но, что удивительно, ключевая проблема всё также, не пропала.
Одна из идей кода заключается в том, чтобы при двух условиях происходила запись в базу данных. А именно нужно, чтобы в промежуточную таблицу ip_id_address заносилось кол-во уникальных посетителей (hosts + 1) и выводилось потом на экран, для каждой картинки по отдельности с условием, что это новый пользователь (ip_address).
Есть файл index.php, в котором находится галерея с картинками. С index.php идёт переход в файл page3.php, в котором происходит запись в БД, выборка из Бд и вывод на экран кол-ва уникальных посетителей.
Файл page3.php:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. // Работа с адресной строкой
  4. $id = intval($_GET['id']);
  5. if (!$id) {
  6.     die('Хьюстон, у ас проблемы');
  7. }
  8. // Кофигурация подключения к СУБД
  9. define("DB_SERVER", "localhost");
  10. //define("DB_PORT", "3306");
  11. define("DB_USERNAME", "root");
  12. define("DB_PASSWORD", "");
  13. define("DB_BASE", "images");
  14. define("DB_CHARSET", "utf-8");
  15. // Подключение к БД
  16. $link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_BASE);
  17. mysqli_set_charset($link, DB_CHARSET);
  18. if (!$link) {
  19.     die('Хьюстон, у ас проблемы');
  20. }
  21. // Работаем с данными полученными от пользователя
  22. // Проверяем есть ли такой IP в таблице, можно просто повесить уникальный индекс на колонку :)
  23. $host = $_SERVER['REMOTE_ADDR'];
  24. $result = mysqli_query($link, "SELECT ip_address FROM id_ip_address WHERE ip_address = '" . $host . "'");
  25. if (!mysqli_num_rows($result)) {
  26.     $result = mysqli_query($link, "INSERT INTO id_ip_address SET ip_address = '" . $host . "' ");
  27. }
  28. $user = mysqli_query($link, "SELECT COUNT(ip_address) FROM id_ip_address WHERE ip_address = '" . $host . "' ");
  29.  
  30. // Автоинкремент статистики просмотров
  31. $statistic = mysqli_query($link, "SELECT hosts FROM img WHERE id = " . $id);
  32. if (!mysqli_num_rows($statistic)) {
  33.     $statistic = mysqli_query($link, "INSERT INTO id_ip_address SET hosts = 1");
  34. } else {
  35.     $statistic = mysqli_query($link, "UPDATE id_ip_address SET hosts = hosts + 1");
  36. }
  37. $count = mysqli_query($link, "SELECT SUM(hosts) FROM id_ip_address");
  38. // Необходимо позаботится о безопасности и сделать обработку ошибок :)
  39. $sum = mysqli_fetch_row($count);
  40. echo "Уникальных посетителей: " . mysqli_num_rows($user);
  41. echo "<br />";
  42. echo "Просмотров: " . $sum[0];
  43. mysqli_close($link);
  44. ?>
  45. Я пробую связать два условия в одно (id картинки + ip_address ), например в строку
  46. [PHP]
  47. $user = mysqli_query($link, "SELECT COUNT(ip_address) FROM id_ip_address WHERE ip_address = '" . $host . "' ");
  48.  

Пробую,добавить AND id = '$id' в строку:
PHP:
скопировать код в буфер обмена
  1. $user = mysqli_query($link, "SELECT COUNT(ip_address) FROM id_ip_address WHERE ip_address = '" . $host . "' ");
  2.  

но ничего не получается.

То есть, если я, например, вручную меняю ip_address в таблице (то есть, их становится 2), то и выводится на экран уникальных посетителей должно 2, а этого не происходит. Выводится, по-прежнему Уникальных посетителей: 1.
Как связать эти два условия?
Есть 3 таблицы в БД:
Прикреплено изображение (Нажмите для увеличения)
Три таблицы БД images.JPG

(Отредактировано автором: 08 Мая, 2020 - 13:57:25)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB