请教高手,我在php生成的html(地址如:http://www.123.com/newinfo/2011/4848943.html)里加入以下代码  浏览次数:<iframe src="/postsclick.php" frameborder="0" scrolling="no"></iframe>    
<iframe src="/postsclick.php?url=$_SERVER['REQUEST_URI']" frameborder="0" scrolling="no" height="35"></iframe>
postsclick.php的功能是得到点击次数,代码如下,
<?php
include('config.php');
error_reporting(E_ALL & ~E_NOTICE);
$clickurl =isset($_GET['url']) ? $_GET['URL'] : exit(0);
$newclick = $db->exe_sql("UPDATE `data01` SET `clicknum`=`clicknum`+1 where `url` like '%{$clickurl}'");
$newclicknum = $db->exe_sql("select `clicknum` from `data01` WHERE `url` LIKE '%{$clickur}'");
$info_click = mysql_fetch_assoc($newclicknum);
$info_clicknum = $info_click["f_clicknum"];
echo "浏览次数:".$info_clicknum;
?>
现在得到的结果是刷新当前html页面,当前浏览次数+1,但实际是后台数据库是第一条记录+1,然后其他页面也+1.
现在要怎么办?修改那些语句?

解决方案 »

  1.   


    修改一下上面的语句
    $info_clicknum = $info_click["clicknum"];
    echo "浏览次数:".$info_clicknum;
    ?>
      

  2.   

    你的数据库中存放url的表主键是什么?
    update的话以主键为更新条件:
    UPDATE `data01` SET `clicknum`=`clicknum`+1 where urlid=".$id;这样保证唯一更新。
      

  3.   

    主键是网址,然后用like?这个你可以给网址设置网址id啊。`urlid`  int primary key 
      

  4.   

    ajax实现的html页面站点计数器 (2007-03-12 15:18:51)转载
    分类: js应用
    #siteCount.html
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> 用 ajax实现的HTML静态页面站点计数器 </TITLE>
    <!--
    author tianbao
    added 2007-03-12
    --> </HEAD>
     <BODY>
      本站访问统计为<span id="siteCount"></span>
     <script src="ajaxaction.js"></script>
    <script>
    function sendMyGetAction(){
    var url = "account.jsp?sid="+Math.random()
     sendGetAction(url,stateChange);
    }
    function stateChange(){
      if (xmlHttp.readyState==4)
      {
      document.getElementByIdx("siteCount").innerHTML=xmlHttp.responseText;
      };
    }
    setTimeout(sendMyGetAction,100);
    </script>
     </BODY>
    </HTML>
    #account.jsp
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import = "java.io.*"%>
    <%!
    /**
    author  tianbao
    added 2007-03-12
    **/
    static long  site_count = 0;//站点计数器
    static long  s_count = 0;//计数累计器
    static boolean hasReadFile = false;//计数器文件没有没被读取
    public synchronized void init(String filepath){
    //初始化信息
    //当计数器文件没有被找到时,新建一个
    try{
    File file = new File(filepath);
    if(!file.exists()){
    file.createNewFile();
    }
    }catch(Exception e){
    System.out.println("计数器文件创建失败"+e);
    }
    FileReader fr= null ;
    BufferedReader br= null;
    try{
     fr= new FileReader(filepath);
     br= new BufferedReader(fr);
    String line = br.readLine();
    site_count =  Long.parseLong(line);//从文件中读取计数初始化计数器变量
    }catch(Exception e){
     
    }finally{
     try{
    if(br != null)
    br.close();
    if(fr != null)
    fr.close();
     }catch(Exception e){}
    }
    hasReadFile = true;//不需要再初始化了
    }
    public synchronized long getSiteCount(String filepath){
    //第一次调用时,初始化计数器
    if(!hasReadFile){
    init(filepath);
    }
    s_count ++;//计数累加
    site_count++;//计数器进行累加
    if(s_count>=10){
    //如果累计器满10
    //则要将站点计数器保存
    FileWriter fw = null;
    BufferedWriter bw = null;
    try{
    fw = new FileWriter(filepath);
    bw = new BufferedWriter(fw);
    bw.write(site_count+"");//保存计数器
    bw.flush();
    s_count = 0;//初始化累加器
    }catch(Exception e){
    }finally{
     try{
    if(bw != null)
    bw.close();
    if(fw != null)
    fw.close();
            }catch(Exception e){}
    }
    }
    return site_count;
    }
    %>
    <%
    String filepath = request.getRealPath("/")+"account.txt";
    out.println(getSiteCount(filepath));
    %>
    #ajaxaction.js
    //定义全局的xml对象
    var xmlHttp = null;
    function GetXmlHttpObject()
    {
      var xmlHttp=null;
      try
        {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
        }
      catch (e)
        {
        // Internet Explorer
        try
          {
          xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
        catch (e)
          {
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        }
     if(xmlHttp == null)
      alert("对不起,您的浏览器不支持Ajax");
      return xmlHttp;
    }
    function sendGetAction(url,myStateChanged){
      //get传送
     
     if (xmlHttp==null)
      {
       xmlHttp=GetXmlHttpObject();
      }
     
      //指定响应函数
      xmlHttp.onreadystatechange=myStateChanged;
      xmlHttp.open("GET",url,true);
      xmlHttp.send(null);
    }
    function getQuery(form){
    //将表单元数拼成Query条件
        queryString="";
       
     
        var numberElements =  form.elements.length;
        for(var i = 0; i < numberElements; i++) {
            if(i < numberElements-1) {
                queryString += form.elements[i].name+"="+
                               encodeURI(encodeURI(form.elements[i].value))+"&";
            } else {
                queryString += form.elements[i].name+"="+
                               encodeURI(encodeURI(form.elements[i].value));
            }
        }
     return queryString;
       
    }
    function sendGetForm(form,myStateChanged){
      //表单GET提交
      var queryString = getQuery(form);
      var url = form.action;
      url = url+"?"+queryString+"&sid="+Math.random();
      sendGetAction(url,myStateChanged);
     
    }
    function sendPostAction(url,strQuery,myStateChanged){
    //post传送
       if (xmlHttp==null)
      {
      xmlHttp=GetXmlHttpObject();
     
      }
      xmlHttp.open("POST",url,true);
      xmlHttp.onreadystatechange=myStateChanged;
      xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
      xmlHttp.send(strQuery);//发送请求
    };
    function sendPostForm(form,myStateChanged){
    //表单post提交
      var queryString = getQuery(form);
      var url = form.action;
      sendPostAction(url,queryString,myStateChanged);
    }
      

  5.   

    1.<iframe src="/postsclick.php?url=$_SERVER['REQUEST_URI']" frameborder="0" scrolling="no" height="35"></iframe>用js获取当前地址。2.$clickurl =isset($_GET['url']) ? $_GET['URL'] : exit(0);
    $_GET['URL']改成小写的$_GET['url']3.$newclicknum = $db->exe_sql("select `clicknum` from `data01` WHERE `url` LIKE '%{$clickur}'");{$clickur}改成{$clickurl}
      

  6.   

    <iframe src="/postsclick.php?id=<?php echo $newsid;?>" frameborder="0" scrolling="no"></iframe>   
    <?php
    include('config.php');
    error_reporting(E_ALL & ~E_NOTICE);
    $newsid =isset($_GET['url']) ? $_GET['URL'] : exit(0);
    $newclick = $db->exe_sql("UPDATE `data01` SET `clicknum`=`clicknum`+1 where `id` = $newsid");
    $newclicknum = $db->exe_sql("select `clicknum` from `data01` WHERE `id` = $newsid");
    $info_click = mysql_fetch_assoc($newclicknum);
    $info_clicknum = $info_click["f_clicknum"];
    echo "浏览次数:".$info_clicknum;
    ?>
    用ID传值,比较精准。