如何根据日期计算唯一身份访问次数

时间:2013-01-23 15:34:18

标签: php mysql sql count

我有一个报告表,我只需使用下面的代码计算点击次数。

// Get hits
    $hits_query = mysql_query("SELECT COUNT(*) AS `count` FROM `reports` WHERE `stuff_id` = ".$row->id."");
    $fetch_hits = mysql_fetch_array($hits_query);
    $hits = $fetch_hits['count']; 

该代码效果很好,完全符合我的要求但我现在想要的是如何获得独特的点击量?

在我的报告表中,我存储了每个访问权限,因此stuff_id上的每个用户群都有多个日志。在我的报告表中,我将日期保存为每个报告的01-23-2013,以及用户ip和stuffed,每24小时从2更改为1。

2 个答案:

答案 0 :(得分:0)

您需要一个唯一标识用户的字段。我假设我的例子是user_ip。改变这个:

$hits_query = mysql_query("SELECT COUNT(*) AS `count` FROM `reports` WHERE `stuff_id` = ".$row->id."");

对此:

$hits_query = mysql_query("SELECT COUNT(DISTINCT `user_ip`) AS `count` FROM `reports` WHERE `stuff_id` = ".$row->id."");

注意: mysql库自PHP 5.5起将被弃用,并在未来的PHP版本中删除。开始计划远离它的迁移是个好主意。

答案 1 :(得分:0)

你可以这样做:

$hits_query = mysql_query("SELECT COUNT(DISTINCT `user_ip`) AS `count` FROM `reports` WHERE `stuff_id` = ".$row->id."");

或者,如果您想要一个独特的回复,您可以这样做:

$user-IP = "Put here the ip adress of the user that you want";
$hits_query = mysql_query("SELECT COUNT(*) AS `count` FROM `reports` WHERE `user_ip` = ".$user-IP."");