Найти уникальные IP-адреса в таблице MySQL для имени пользователя - PullRequest
1 голос
/ 12 февраля 2012

У меня есть таблица link_track со следующими полями: id, uid, ip, hitdate

id - это поле с автоматическим приращением

uid - это идентификатор члена из таблицы-члена

ip - это ip-адрес посетителя сайта, сгенерировавшего новую запись в таблице

hitdate - это дата начала записи строки в таблицу

В настоящее время существуетв таблице приведены следующие записи:

id   uid          ip           hitdate
28     1    71.61.59.113    1329016727
27     1    71.61.59.113    1329015378    
26     1    71.60.19.216    1329007376

Я хочу выяснить, сколько уникальных IP-адресов существует для любого данного идентификатора пользователя

В настоящее время яЯ использую следующий код:

$query = "SELECT COUNT(DISTINCT `ip`) as `count` FROM `link_track` WHERE uid = '".$memID."'";

$results = mysql_query($query);

$statBuffer = mysql_fetch_array($result);

$unique_clicks = mysql_num_rows($result);

echo $unique_clicks;

Однако это всегда возвращает значение 1

Ответы [ 2 ]

4 голосов
/ 12 февраля 2012

Вы получаете COUNT() агрегат из базы данных и звоните mysql_num_rows(). Агрегат всегда будет возвращать только одну строку, содержащую количество IP-адресов для этого пользователя (это 1, который вы получаете), поэтому вместо этого вам нужно получить значение из $statBuffer

$unique_clicks = $statBuffer['count'];
0 голосов
/ 12 февраля 2012

Изменяя код SQL вместо PHP, вы должны выполнить этот запрос:

select distinct ip from link_track
where uid = $uid

Тем не менее, я бы, конечно, пошел на предложение Майкла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...