我想显示从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>");
?>发布于 2018-07-29 16:53:26
使用时间戳存储每一次单击,以便在几天后对报表进行排序。
对于唯一的单击,一旦用户单击该链接,就为每个用户分配一个会话变量和/或cookie,并让您的代码检查cookie/session变量,并在一个“唯一”列中记录"0“(如果没有该变量,则为”1“)。
会话变量将是“每个会话都是唯一的”,或者持续很长时间的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}
}https://stackoverflow.com/questions/51582335
复制相似问题