因此,我正在我的網站的一部分,用戶可以提高和降低內容的一部分,這是存儲一行評級與+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