因此,我正在我的网站的一部分,用户可以提高和降低内容的一部分,这是存储一行评级与+1为upvote和 - 1为downvote。如果更新或插入行后MYSQL查询返回
我也将总共有upvote - downvotes
的用户配置文件页面。这些票的总数将被存储在用户信息的mysql表中。
我的问题是,当有人投票的东西,让我们说一个downvote所以我减去一个用户配置文件的总票价。但是,如果用户改变了主意并修改了投票以使得最终值为正确,我必须实际添加2(+1来补偿-1,另一个+1来为upvote)
$sql = "
INSERT INTO `votes`
(
`added_by`,
`value`,
`post_id`,
`ip_created`
) VALUES (
'".$logedInUser['User_ID']."',
'".$value."',
'".$this->post_id."',
'".ip2()."'
)
ON DUPLICATE KEY UPDATE `value` = '".$value."'
";
$db->sql_query($sql);
我知道我可以找到一种方法来做到这一点,但它会需要一些其他的查询,我在跳转有一种方法可以返回,如果它被插入或更新。 (我知道该查询只会返回TRUE或FALSE)
您的查询需要查询后最大键之前采取的最大关键,如果他们是不同的,那么你做一个插入否则它是一个更新 – ITroubs 2013-03-18 21:48:51
'插入或更换'? – Izkata 2013-03-18 21:49:27
这就是为什么你不应该规范化你的数据库。 – 2013-03-18 21:51:53