有人可以帮助我尝试制作一种观看次数,以反映观看帖子的次数。
我正在尝试在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;
}
答案 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