adelone
@adelone

Почему не выполняется условие php?

Пытаюсь организовать счетчик просмотра статьи, но что-то не заладилось...
Логика такая:
- Получаем ip-клиента
- Проверяем, есть ли он в бд
- Если есть - выходим
- Если нету - записываем ip в бд и делаем +1 к просмотрам статьи

Новый айпишник в бд записывается, но при повторном заходе на статью просмотр опять плюсуется, несмотря на то, что такой айпи в бд есть :С

Вот код:
$ip_viewer =  $_SERVER["REMOTE_ADDR"];
        $query_views = mysql_query("SELECT `ip` FROM `ip_viewer` WHERE `ip` = '$ip_viewer'",$db);
          mysql_fetch_array($query_views);
        
          if(isset($query_views['ip'])){
                exit;
          }else{
            $views_update = mysql_query("UPDATE `services` SET `views`=`views`+1 WHERE `services`.`url` = '$url'",$db);
            $views_insert = mysql_query("INSERT INTO `ip_viewer` (ip) VALUES ('$ip_viewer')",$db);
          }
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 3
@SharuPoNemnogu
не язык плохой, программисты такие...
может стоит посмотреть документацию, там хорошо описано как работает функция, даже с примерами. А вообще она больше не поддерживается.
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
$query_views =mysql_fetch_array($query_views); //будет работать, но это кривое решение


Внимательней читайте код, внимательно читайте доки, ОЧЕНЬ внимательно читайте советы опытных людей. Вам написали - функция mysql_fetch_array депрекатед, это раз, и второе - вы ее неверно используете.
Используйте функции вывода переменных (хотя бы) для отлова багов var_dump, print_r;
Ответ написан
@firm
Немного поправлю $query_views - дескриптор результата запроса. Он не содержит результирующие данные по запросу, их можно получить так:
$arr_ip = mysql_fetch_array($query_views);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы