使用PHP和MySQL计算链接的总点击次数和唯一点击次数

时间:2018-07-29 16:29:28

标签: php

我想显示从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>");

?>

1 个答案:

答案 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}
}