计算来自某个浏览器的点击量

时间:2014-05-06 09:25:01

标签: php mysql

<?PHP
    $con=mysqli_connect("localhost","root","","userinfo");
       // Check connection
       if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con, $query);

while($row = mysqli_fetch_array($result)) {

if ($result) {
    $Chromerows = mysqli_num_rows(mysqli_query($connection,"SELECT * FROM tbl_stats WHERE Browser = 'Chrome'"));
    $Firefoxrows = mysqli_num_rows(mysqli_query($connection,"SELECT * FROM tbl_stats WHERE Browser = 'Firefox'"));
    echo 'Chrome' . " : " . $Chromerows . "   |   ". 'Firefox' . " : ". $Firefoxrows;
}


}

mysqli_close($con);

?>

所以基本上我有一个数据库存储用户从某个浏览器,操作系统及其ip查看的时间。

我需要在页面上显示一个点击计数器,显示来自该浏览器的点击量,我已经尝试按照教程查找如何执行此操作但是到目前为止失败了,我不知道如果这是关闭的话。

5 个答案:

答案 0 :(得分:0)

要获取用户使用的浏览器,您可以使用$_SERVER['HTTP_USER_AGENT']并存储到数据库中。 For more information

为什么在连接到数据库后执行查询:$result = mysqli_query($con, $query);并循环while($row = mysqli_fetch_array($result)){}删除没有必要。

您的代码包含多个错误,请添加此代码

       $con=mysqli_connect("localhost","root","","userinfo");
       // Check connection
       if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
       }
       else
       {

           $Chromerows = mysqli_num_rows(mysqli_query($con,"SELECT * FROM tbl_stats WHERE Browser = 'Chrome'"));

           $Firefoxrows = mysqli_num_rows(mysqli_query($con,"SELECT * FROM tbl_stats WHERE Browser = 'Firefox'"));

           echo 'Chrome' . " : " . $Chromerows . "   |   ". 'Firefox' . " : ". $Firefoxrows;   

       } 

答案 1 :(得分:0)

要检测某人正在使用哪个浏览器,您可以使用get_browser();

http://www.php.net/manual/en/function.get-browser.php

答案 2 :(得分:0)

首先:没有办法做到这一点。

解决方案1 ​​

通过保存用户代理和IP,一个解决方案与您一样。

但为什么这不能正常工作?

  1. 有动态IP地址:这些是一段时间后改变的IP。用户可以获得多个IP。

  2. 内部网络:在学校,公司......中,很多人使用相同的IP地址。如果他们使用相同的操作系统和浏览器(相信我,这发生了很多!),他们将作为相同的浏览器,而它是一个完整的其他用户。

  3. 解决方案2

    另一种更好的方法是在用户第一次访问您的网站时为用户创建一个Cookie,并使用该Cookie保存信息。

    您遇到的唯一问题是用户可以删除Cookie,但大多数人都不会这样做。永远。所以我认为这是最合适的解决方案。然后,您可以使用存储在该cookie中的ID来计算数据库中的项目。

    仅供参考:始终使用随机字符串作为标识。用户可以更改他们的cookie,并且您不希望他们进入另一个“会话”。您可以检查它们是否是数据库中不存在的cookie,它是错误的并创建另一个。

答案 3 :(得分:0)

首先,除非您没有向我们展示完整的代码,否则这些行是不必要的:

$result = mysqli_query($con, $query);

while($row = mysqli_fetch_array($result)) {

if ($result) {

您的脚本可能如下所示(您可以使用一个查询执行此操作):

<?PHP
  $con=mysqli_connect("localhost","root","","userinfo");
  // Check connection
  if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
  } else {
    $get_rows = mysqli_query($connection,"SELECT COUNT(*) as `count`, `Browser` FROM tbl_stats GROUP BY `Browser` HAVING `Browser` IN('Chrome', 'Firefox') ORDER BY `Browser` ASC");
    $get_chrome = mysqli_fetch_array($get_rows);
    $get_firefox = mysqli_fetch_array($get_rows);
    echo 'Chrome' . " : " . $get_chrome['count'] . "   |   ". 'Firefox' . " : ". $get_firefox['count'];
  }
  mysqli_close($con);
?>

答案 4 :(得分:0)

请使用此查询来计算浏览器使用情况:

$result = mysqli_query($con, "SELECT `Browser`, COUNT(*) as `Usage` FROM `tbl_stats` GROUP BY `Browser`");

现在你可以回复这样的结果:

while($row = mysqli_fetch_array($con, $result)) {
    echo "Browser: " . $row['Browser'] . " Usage: " . $row['Usage'];
}