在MySQL表中查找用户名的唯一IP地址


Find unique IP addresses in a MySQL table for a username

我有一个名为link_track的表,包含以下字段:id、uid、ip、hitdate

id是一个自动递增字段

uid是成员表中成员的id

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

我想做的是找到任何一个给定uid存在的所有唯一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 的值

您将从数据库中获得一个COUNT()聚合,并调用mysql_num_rows()。聚合总是只返回一行,其中包含该用户的IP数(即您获得的1),因此您需要从$statBuffer 中获得值

$unique_clicks = $statBuffer['count'];

更改SQL代码而不是PHP时,应该运行以下查询:

select distinct ip from link_track
where uid = $uid

不过,我当然会接受迈克尔的建议。