网页浏览量计数器用虚假数据更新

时间:2013-07-10 12:27:48

标签: php mysql

我已设置此帖子表,其中包含hits列。 hits列用于存储查看帖子的次数。但问题出在更新查询中。数据库位于我的本地(开发)计算机上,因此我是唯一访问该脚本的用户。当我查看帖子时,它会更新,但是使用假数据,如果当前计数有10,当我查看页面时它会跳到25左右......非常随机......但是增量。我想知道我哪里出错了。这是一个代码示例:

Public function getPost()
{
//some data query to get post data and the post id 
 $this->viewsCounter($pid);
Return post data as array.
}

第一种方法现在没问题,这是viewsCounter()方法

Public function viewsCounter($pid)
{ 
    $this->query("update post set hits=hits+1 where id='$pid' "); 
}

我的hits列以这种方式设置hits int(255) NOT NULL请帮助我在这里找不到任何内容?

2 个答案:

答案 0 :(得分:1)

正如@ AD7six所说的,计数器被称为34次......错误来自其他地方。我使用绝对URL来加载一些js和css文件。持有此URL的变量有点破碎,资源不能很好地加载,因此额外的视图....感谢大家的帮助。

这是导致错误的代码段

$file_path='http://mysite.com/resources';

然后在我的页面上我做了这个

<link rel='stylesheet' href='<? echo $files_path ;?>/css/style.css' type='text/css' /> 

这变成了相对URL,因为没有调用file_path变量。相对URL被附加到我当前的url,因此在尝试获取资源时在服务器上创建额外的命中。

再次感谢。

答案 1 :(得分:0)

//int(255) NOT NULL change it as int(11) unsigned and validate the pid

//add validation
<?php 

function viewsCounter($pid)
{ 
    //validate here
    if(!empty($pid))
    {
        $this->query("update post set hits=hits+1 where id='$pid' ");

    }else{
        //your error message goes
    }

}