2

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

// 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。

4

2 回答 2

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."");

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

于 2013-01-23T15:50:01.333 回答
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."");
于 2013-01-23T15:58:47.760 回答