首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP和MySQL计算链接上的总单击次数和唯一单击次数

问使用PHP和MySQL计算链接上的总单击次数和唯一单击次数
EN

Stack Overflow用户
提问于 2018-07-29 16:29:28
回答 1查看 1.3K关注 0票数 0

我想显示从mysql数据库生成的链接的下列统计信息:

1)总点击量

2)总唯一点击量

3)今日点击

4)今日独特的点击

到目前为止,我已经设法计算了总点击量。表中有许多链接,我正在随机显示它们,我让用户跳转到另一个页面,从index.php到redirect.php .

我在链接上使用这个代码..。

代码语言:javascript
复制
//displaying links
<a target="_blank" href="redirect.php?id=<?php echo $url_id ; ?>">

在redirect.php上,我使用这段代码来增加点击量,最后,重定向到url.

代码语言:javascript
复制
<?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>");

?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-29 16:53:26

使用时间戳存储每一次单击,以便在几天后对报表进行排序。

对于唯一的单击,一旦用户单击该链接,就为每个用户分配一个会话变量和/或cookie,并让您的代码检查cookie/session变量,并在一个“唯一”列中记录"0“(如果没有该变量,则为”1“)。

会话变量将是“每个会话都是唯一的”,或者持续很长时间的cookie将更好地消除同一用户多次访问/会话站点的“唯一”单击。但他们总是可以清除他们的饼干或使用不同的浏览器,我想。

如果您有一个唯一的和一个非唯一的行,那么这个逻辑就是。您还可以用日期作为索引执行一行操作,对唯一的单击执行一次,对非唯一的单击执行一次,但这与以下非常相似:

代码语言:javascript
复制
{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}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51582335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档