每次查看页面时加1到列?

时间:2013-03-14 00:41:24

标签: php mysql

有人可以帮助我尝试制作一种观看次数,以反映观看帖子的次数。

我正在尝试在mysql中创建一个函数,它会在我的表中为一个名为read的列添加+1。因此,如果计数从列中的0开始,并且每当有人打开该帖子时,它会添加1而另一个1和另一个1,无论多少次访问该页面。

我正在努力做到这一点,但我失败了,有人可以告诉我如何实现这类事情。

function read_forum_set() {
    global $connection;
    global $forum_id;
    $query = "SELECT *
            FROM ptb_forum, ptb_profiles
            UPDATE ptb_forum.read_forum +1
            WHERE ptb_profiles.user_id = ptb_forum.from_user_id
            AND ptb_forum.id = '$forum_id' ";
    $read_forum_set = mysql_query($query, $connection);
    confirm_query($read_forum_set);
    return $read_forum_set;
}

2 个答案:

答案 0 :(得分:0)

您需要使用加入更新:

update ptb_forum
join ptb_profiles on ptb_profiles.user_id = ptb_forum.from_user_id
set ptb_forum.read_forum = ptb_forum.read_forum + 1
where ptb_forum.id = $forum_id

无论你做什么,请确保使用update ... set column = column + 1而不是两个单独的查询(一个用于读取旧计数,一个用于更新它),因为只有一个更新表达式,您将确保每个命中只计算一次

答案 1 :(得分:0)

首先,为了理智起见,最好将查询分开。

至于增量查询,非常简单

UPDATE table 
SET column = column + 1
WHERE foo = bar