我想显示从mysql数据库生成的链接的以下统计信息:
1)总点击
2)唯一点击总数
3)今天点击
4)今天的唯一点击
到目前为止,我刚刚设法统计了总点击次数。表中有很多链接,我随机显示它们,并使用户从index.php跳到另一个页面到redirect.php ...
我在链接上使用此代码...
//displaying links
<a target="_blank" href="redirect.php?id=<?php echo $url_id ; ?>">
在redirect.php上,我正在使用此代码来增加点击次数,最后,重定向到url ...
<?php
//catching id of url using get method
$id = $_GET['id'];
//query to increment clicks
$query = "UPDATE tablename SET clicks_count = clicks_count + 1 WHERE url_id = $id";
$increment_clicks_query = mysqli_query($connection,$query);
//query to fetch url
$query = "SELECT url FROM tablename WHERE url_id = $id";
$redirect_query = mysqli_query($connection,$query);
while($row = mysqli_fetch_assoc($redirect_query)){
$url = $row['url'];
}
//now redirecting to the url
echo("<script>location.href='$url';</script>");
?>
答案 0 :(得分:0)
为每次点击存储时间戳,以便您可以在几天后将其分类为报告。
要获得唯一点击,请为每个用户单击链接后为其分配一个会话变量和/或一个cookie,并使您的代码检查cookie /会话变量,并在有唯一变量的情况下在“唯一”列中记录“ 0”或Cookie(如果没有,则为“ 1”)。
会话变量对于每个会话而言都是“唯一的”,或者持续时间较长的cookie可以更好地消除同一用户多次访问/会话对该网站的“唯一”点击。但是他们总是可以清除cookie或使用其他浏览器。
如果您有一个唯一行和一个非唯一行,则此逻辑为。您还可以用日期作为索引来进行一行操作,我猜一栏用于唯一点击,而一栏用于非唯一点击,但这将非常相似:
{Query to check if today's unique and non-unique rows exist in db}
if (today's rows don't exist) {
{create unique clicks row in DB}
{create non-unique clicks row in DB}
}
if (user DOES have cookie or session var) {
{increment non-unique clicks}
} else {
{increment unique clicks}
{set session variable or cookie}
}