我有一个名为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
不过,我当然会接受迈克尔的建议。