3

我正在执行此查询以了解按日期计算的唯一 IP 数量。事实是,我不仅需要在 PHP 中返回按日期计算的唯一 IP 数量,还需要返回日期本身。我该怎么做?

function getTotUniqueVisitsDay($id) {
    $query="SELECT COUNT(DISTINCT user_ip) FROM campaigns_visitors WHERE campaign_id = ".$id." group by date";
    $result = mysql_query($query) or die("Getting tot unique visits by day failed: " . mysql_error());   
    $visits_by_day = mysql_num_rows($result);
    return $visits_by_day;   
}
4

3 回答 3

1

您的查询是

SELECT COUNT(DISTINCT user_ip)
FROM campaigns_visitors
WHERE campaign_id = ?
GROUP BY date

这不会date像您发现的那样返回。

你应该有更多的运气

SELECT COUNT(DISTINCT user_ip), date
FROM campaigns_visitors
WHERE campaign_id = ?
GROUP BY date

其他人可能会建议您使用准备好的语句和mysqli例程;我已将您的查询翻译成可以准备的格式。

我相信您可以构造 PHP 来操作更改后的语句。

于 2013-06-07T10:05:41.187 回答
0

最佳做法是将日期存储为 last_updated 和 date_created 列。这篇文章建议如何获取任何表的更新日期 如何知道 MySQL 表的最后更新时间?

并且根据以下帖子,您无法获取表中特定行的更新日期 如何获取 MySQL 中记录更新的日期

于 2013-06-07T10:14:51.393 回答
0
function getTotUniqueVisitsDay($id) {
    $query="SELECT date_field FROM campaigns_visitors WHERE campaign_id = ".$id." group by date_field";
    $result = mysql_query($query) or die("Getting tot unique visits by day failed: " . mysql_error());   
    $visits_by_day = mysql_num_rows($result);
    $visits_by_day['count'] = count($visits_by_day);
    return $visits_by_day;   
}
于 2013-06-07T10:15:13.723 回答