用php+mysql如何统计超链接被点击的次数

RT,比如我要统计<a href="http://www.baidu.com">链接</a>这个超链接被点击的次数,请高手赐教!

分两种情况,一种是前置页面统计,这个时候统计发送在点击的时候,适用于这个链接是广告链接,或者其他链接。第二种,是页面打开加入统计,这种适用于SEO或者其他的需要,统计当前页面到底有多少点击率,不受前置页面影响。


    在链接里面加一个hook。比如

    <a href="页面链接" onclick="countHit(this)">链接文字</a>

    然后定义一个js函数

    function countHit(obj){

         var url = $(obj).attr('href');

         //这里我使用jq,以链接为标准。当然对于广告可以以

         //广告id为统计 的标准

         $.ajax({

              url : '你作为统计的php页面地址';

              type : 'post',//使用post是防止浏览器直接输入这个地址而被刷

              data:{link:url}//把链接地址post传过去

        });

    }

    在php页面

    $link = addslashes($_GET['link']);//安全处理下,让link能正常存入

    //接下来做有效性判断,这里省略

    $query = mysql_query("SELECT 1 FROM `统计表` WHERE `link`='$link'");

    $has = mysql_fetch_array($query);

    if($has){

       //当前存在统计

      mysql_query("UPDATE `统计表` SET hits=hits+1 WHERE `link`='$link'");

    }else{

       mysql_query("INSERT INTO `统计表` (link,hits) VALUE('$link','1')");

    }

    这样就完成了统计内容

    当前页面统计

    一般这种统计为某种信息内容的统计,我这里假设是某一条新闻的统计,这个信息里面有个hits字段作为统计

    只要在php页面里面加上

     mysql_query("UPDATE `新闻表` SET hits=hits+1 WHERE `id`='新闻id'");

    这一句就可以完成统计了

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-16
如果你的链接是站内链接的话。一楼给的思路就可以了,如果你的链接是链接到站外的话,则需要用到JS,可以给链接加上一个函数,然后通过AJAX通知后台保存到数据库。
<a href="www.baidu.com" onclick="fun(这里给一个值,用于标识该链接为baidu)“>链接到百度</a>
function fun(id){
这里通过 ajax发送标识到后台入库
}
具体ajax这里就不写了,你网上搜一下,很多的
第2个回答  推荐于2016-02-09
这个好像是在被点的网站上统计
比如<a href="1.php?id=aaa">链接</a>
在1.php里写
if($_get[id]=='aaa')
{
数据库里的某个数据 +1
为了防止刷新可以再加个session变量判断
}
思路就这样,自己多动手本回答被提问者和网友采纳

php 浏览数(点击次数)代码怎么写
count = count + 1 很简单的,

php 如何提取mysql 某一个表内的记录数
`status`=5 ';res=mysql_query($sql);list($cnt)=mysql_fetch_row($res);echo cnt;

如何用PHP统计mysql数据表里指定字段的内容的总数
mysql_connect("localhost","root","123456") or die("打开数据库服务器失败!"); \/\/连接数据库 mysql_select_db("a") or die("打开数据库a失败!"); \/\/打开数据库,a为数据库名 sql = "select id from b"; \/\/id为字段名,b为表名 result=mysql_query($sql);if(mysql_qu...

PHP判断MYSQL一个字段内出现次数最多的?
select new,count(*) group by new order by count(*) desc limit 1 大致的思路,sql我没测试,你自己改改

MYSQL数据库+PHP,多重条件搜索的方法,请狂人高手解答一下
这个很简单,你可以先用GET获取URL中KEYWORD的值,获得了之后进行第一次MYSQL查询,当用户在返回的结果中再次点击后即可再次查询.同时也可以用链表查询来解决,即MYSQL中的多对多查询.

PHP + Mysql多个表并行查询如何实现
在PHP-FPM处理HTTP请求时,有时会遇到一个请求需要进行多次MySQL查询(在报表类应用中比较常见)。通常我们会以串行方式查询:link = new mysqli();$rs1 = $link->query('SELECT * FROM table1');while ($row = $rs1->fetch_row()) { ... }$rs2 = $link->query('SELECT * FROM ...

php中用mysqlcount(*) 如何取返回值?
取值示例代码如下:<?php \/\/数据库连接$conn=mysql_connect("localhost","root","root");if(!$conn){ die("对不起,数据库连接失败! ").mysql_errno();}\/\/选择数据库mysql_select_db("testdb");\/\/sql语句$sql="SELECT COUNT(*) AS count FROM user";\/\/执行sql$query=mysql_query($...

请教php+mysql要做pv统计的方案
简历一个数据库表census,存下用户ip,和访问时间,如果登录了就存下userid 每次请求进来的时候首先去写一下census数据:具体可以吧方法写到父类里

PHP如何取得mysql字段值并记算时间?
两种方式 :1、可以直接用SQL 里的函数 sum() ;如:"select sum(字段) as num from tab "; \/\/sum 取该字段所有列的总和 2、用PHP函数 sum($array) ; \/\/取数组中值的总和 当然 字段必须是int型的

php连接mysql"超过最大连接时间30秒"如何解决
1、找到php目录下的php.ini文件,搜索“max_execution_time”,把max_execution_time = (30)设置成为你想要的数值,如max_execution_time = (0)设置为零则不限制执行时间。2、除了第一种方法,我们还可以使用ini_set()函数来解决这一问题,如:ini.set('max_execution_time',200),这样最大连接...

相似回答