【发布时间】:2013-12-05 02:20:40
【问题描述】:
我在其他任何地方都进行了搜索,但找不到任何参考或教程来向您展示或解释展示顶级 cmets 的最佳方式(如 facebook 或 youtube 上的那个)。
我已经完成了获取记录(根据他们的投票排序的 20 个顶级 cmets)。但是我一直卡在的地方是我应该如何获取接下来的 20 个顶级 cmets
下面是我的表格的样子:
cmets 表
id | comments | comment_id
1 Hi nj3b21das
2 Cool jh3lkjb32
3 How are you? bn32j1343
4 What's up? 3kl213543
votes_cmets 表(1 等于赞成,-1 等于反对)
id | user_id | comment_id | votes
1 4326542 nj3b21das 1
2 2356453 jh3lkjb32 -1
3 8764354 bn32j1343 1
4 3213543 3kl213543 1
然后我通过使用下面的查询将这两个表组合起来以获取排名靠前的 cmets:
SELECT `comments`.comments, SUM(`votes_comments`.votes) AS total_votes
FROM comments
LEFT JOIN `votes_comments `
ON `votes_comments`.comment_id = `comments`.comment_id
GROUP BY comment_id
ORDER BY total_votes
DESC
LIMIT 20
上面的查询将获取前 20 个排名靠前的 cmets。但是,如果我想使用 ajax 获取接下来的 20 个结果并显示以前的记录,那么最好的选择是什么?
注意:请记住,投票是不断变化的。因此,获取下一个前 20 个 cmets 可能会导致已获取的 cmets 重复。处理此问题的最佳方法是什么(如 Facebook、Youtube 等)。
【问题讨论】:
-
嗨 - 关于你关于那些疯狂的 unicode 字符的最后一个问题,你可能会对这个问题感兴趣:stackoverflow.com/questions/10414864/…
标签: php mysql sql ajax facebook