求解:PHP友情链接来路点击统计功能!

yuhaisea 2011-07-13 10:15:34
我想在站内发布友情链接自动统计功能,即有消息提供者在我站注册信息后,我会提供一条友链地址。如果对方将友链放到他自己的网上,如果有访客是从对方网站的友链点击过来。即给他的信息增加一次点击统计。
我的代码是这样:

/*友情链接统计*/
$v_url=$_SERVER['HTTP_REFERER'];
$str_ar=parse_url($v_url);
$web=$str_ar['host']; /***地址格式化成www.XXX.com*/
$click = "select click into $click from card where web = '$web'";
$clickn = $click+1;
$sql = "update card set click='$clickn' where web = '$web'";
/*友情链接统计*/

但这样即读不出来$click字段的已有值。也不能将变量写入到click字段

我的表单结构如下:
ID name web click
名字 网址 站外友链点入次数。


请高手指点,另如有完整的友情链接站外点入统计代码提供,将不胜感激!
...全文
460 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhaisea 2011-07-14
  • 打赏
  • 举报
回复
哪位老大能给段可以用代码啊。
黄袍披身 2011-07-14
  • 打赏
  • 举报
回复
select click into $click from card where web = '$web'"

select 怎么出现了 into?
yuhaisea 2011-07-14
  • 打赏
  • 举报
回复
但我要的是站内统计,能写入数据库,可以根据这个点入数进行排序的。
yuhaisea 2011-07-14
  • 打赏
  • 举报
回复
能读到网址,但我的WEB字段里是http://网址
读到的网址经过格式后是www网址com,不格式就还有其它的参数。
现在就是模糊查询的条件不对。
直接在数据库里:
SELECT * FROM `card` WHERE `web` LIKE '%5z63 com%'
带条件模糊查询能得到结果,
php里$sql = "select * from card where web like '%$web%'";查不到结果
foolbirdflyfirst 2011-07-14
  • 打赏
  • 举报
回复
$sql = "update card set click=click+1 where web like '%$web%'";
一句就够了,外面来个select为哪般
你先echo下$sql,拿到phpmyadmin去执行,看有什么问题。
说不定$_SERVER['HTTP_REFERER']为空都有可能。
yuhaisea 2011-07-14
  • 打赏
  • 举报
回复
按7楼的方法还是错误,应该是模糊查询不对。
我的最原始的代码也是 where web link '%$web%' 读不到click的值!
/*友情链接统计*/
$v_url=$_SERVER['HTTP_REFERER'];
$str_ar=parse_url($v_url);
$web=$str_ar['host'];
$clicksql = mysql_query("select * form card where web like '%$web%'");
if(mysql_num_rows($clicksql)){
$sql = "update card set click=click+1 where web like '%$web%'";
}
yuhaisea 2011-07-14
  • 打赏
  • 举报
回复
感谢7楼提供的方法,但我这段代码是后台执行,如果没找到符合条件的记录,就什么都不用做。那

else {
后面怎么填,
black__ice 2011-07-14
  • 打赏
  • 举报
回复
可以参考楼上的,不需要取出具体的数据,只要判断有无,可以在原有的基础上,直接加1,另外楼上少了个$
xuzuning 2011-07-14
  • 打赏
  • 举报
回复
$clicksql = mysql_query("select * form card where web='$web');
if(mysql_num_rows($clicksql)) {
$sql = "update card set click=click+1 where web='web';
}else {
$sql = "insert into card (web, click) values ('$web', 1)";
}
mysql_query($sql);
yuhaisea 2011-07-14
  • 打赏
  • 举报
回复
肯定能连到数据库。我这只程序的一部分。
我再次改过的代码,还是不能读取表(card)中的字段(click)
<?php
require_once("conn.php");
/*友情链接统计*/
$v_url=$_SERVER['HTTP_REFERER']; /*获取来路的网址*/
$str_ar=parse_url($v_url); /*格式化网址*/
$web=$str_ar['host'];
$clicksql = mysql_query("select * form card where web like '%$web%'");
/*查找表中符合变量¥WEB条件的记录*/
$clickn= mysql_fetch_array($clicksql);
$clicknm= $clickn[click];/*获得记录中的字段click的值*/
$click = $clicknm + 1; /*将值+1*/
$sql = "update card set click='1' where web like '%web%';
/*将+1后的值重新写入click字段 */
/*友情链接统计*/

?>
eden_sheng 2011-07-14
  • 打赏
  • 举报
回复
$click = "select click into $click from card where web = '$web'";
=>
$sql_click = "select click from card where web = '$web'";
$sql_click这只是sql怎么得到数据库里的数据,你得先连接DB,用mysql_connect,再发送一条mysql 查询,用mysql_query,最后取结果集,用mysql_fetch_array或mysql_fetch_row
sugarbelle 2011-07-13
  • 打赏
  • 举报
回复
听说有小江统计

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧