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

时间:2012-02-12 03:34:32

标签: php mysql count ip-address unique

我有一个名为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

2 个答案:

答案 0 :(得分:4)

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

$unique_clicks = $statBuffer['count'];

答案 1 :(得分:0)

更改SQL代码而不是PHP,您应该运行此查询:

select distinct ip from link_track
where uid = $uid

但是,我当然会选择Michael的建议。