-1

有人可以帮助我尝试计算一种查看次数,以反映帖子被查看的次数。

我正在尝试在 mysql 中创建一个函数,它将 +1 添加到我的表中名为 read 的列中。因此,如果计数从列中的 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;
}
4

2 回答 2

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而不是两个单独的查询(一个用于读取旧计数,一个用于更新它),因为仅使用一个更新表达式,您就可以确保每个命中都被精确计数一次

于 2013-03-14T00:49:06.020 回答
0

首先,为了理智起见,将查询分开可能会更好。

至于增量查询,很简单

UPDATE table 
SET column = column + 1
WHERE foo = bar
于 2013-03-14T00:49:54.280 回答