Php 如何根据日期计算唯一访问量

Php 如何根据日期计算唯一访问量,php,mysql,sql,count,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']; 这段代码非常有效,完全符合

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

// 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\u id
的多个日志。在我的报告表中,我在每个报告中将日期存储为2013年1月23日,以及用户ip和
填充的
,每24小时从2变为1。

您需要一个唯一标识用户的字段。在我的示例中,我将假设它是
user\u 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的未来版本中删除。开始计划从It迁移是个好主意。

您可以这样做:

$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."");
或者,如果需要唯一的响应,可以执行以下操作:

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

请考虑使用
mysqli
PDO
命令,因为
mysql
命令已被弃用且不再受支持
mysql
命令容易受到sql注入攻击,并构成安全风险。我只是不知道如何编写代码。你能帮我吗?。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,谢谢你开始学习MySqLi或PDO,你会记得吗?你不必把我的理解中的日期加起来,这会在IP上得到不同的基础,但是我认为在24小时内有一次击中,因为你必须做的就是按日期添加一个组。它将向您展示每个24小时期间的独特访客。从那里你可以算出总数。我的好朋友,我不知道该怎么做,因为我存储的日期是2013年1月23日,我应该更改它吗?将它添加到查询的末尾
按日期分组列名
。但是,这将导致多行。您可以在子选择或循环中对结果进行包装,并将计数相加。