如何统计UP投票,然后从数据库中选择ORDER by UP投票

时间:2011-09-17 15:58:25

标签: php mysql database voting

我的网站上有投票系统,它将每个用户的投票存储在名为 skmp_voting 的表中,此数据库中的每条记录都有 id item_id (这是文章用户投票的ID)和 vote_value 。 vote_value取决于用户做了什么,如果他们投票价值是“1”,如果他们投票的价值是“-1”。

我有toparticles.php页面,我不想展示热门文章,所以有更多投票的文章。这是我的mysql查询,以获得我现在的顶级文章:

SELECT stories.*, skmp_votes.vote_value FROM stories 
JOIN skmp_votes ON stories.id = skmp_votes.item_id 
ORDER BY skmp_votes.vote_value DESC

从其他名为故事的表中选择文章信息,并将其与 skmp_votes 表中的vote_value相对应。

我非常有信心这是不对的,因为它选择的vote_value等于1或者其他东西,所以我需要以某种方式统计所有的vote_values,然后使用mysql查询来获得热门文章。

1 个答案:

答案 0 :(得分:1)

这取决于您的投票表。正如我想象的那样,每次投票都有一排。在这种情况下,你必须为与文章匹配的投票做一笔总和。即。

SELECT SUM(vote_value) as 'total_votes' FROM skmp_voting WHERE item_id='$article_id';

您使用SUM代替COUNT,因为您希望从负面投票中减去该值。

编辑:补充答案

以下查询将为您提供每篇文章及其总票数,按总票数排序(顶部投票最多的文章)

SELECT stories.*, SUM(skmp_votes.vote_value) as 'total_votes' FROM stories 
  JOIN skmp_votes ON stories.id = skmp_votes.item_id 
  ORDER BY skmp_votes.total_votes DESC

要获得最多5篇投票文章,请在最后添加LIMIT 5