我需要一种方法让页面管理员按照用户在该特定页面上发布的帖子总数来查看其页面的成员。帖子存储在不同的表格中,如民意调查,下载,wiki等(如15个表格)。每个人都有id,user_id,page_id,标题,内容等的结构。列出页面所有用户的表称为'收藏夹'。它的结构就是id,user_id,page_id,date。
我目前有一个查询,将所有“内容表”联合起来,让特定用户在网站上显示他们的所有帖子,查看它在哪个页面上,我可以很容易地使用WHERE page_id = $ PAGE_ID)。我尝试使用该代码来做我想在主持人区做的事情。正如我所提到的,在主持人区域,我需要根据其总帖子数DESC对用户列表进行排序。
我有这个代码,但它不工作。
$getfans = mysql_query("SELECT DISTINCT user_id, ((SELECT id FROM wiki WHERE wiki.page_id = $page_id AND wiki.user_id = favorites.user_id)
UNION ALL
(SELECT id FROM downloads WHERE downloads.page_id = $page_id AND downloads.user_id = favorites.user_id)
UNION ALL
(SELECT id FROM polls WHERE polls.page_id = $page_id AND polls.user_id = favorites.user_id)) AS posts
FROM favorites WHERE favorites.page_id = $page_id AND favorites.status = 0 ORDER BY posts DESC", $conn);我尝试过其他方法,也没有工作,但这个对我来说最合乎逻辑,所以这是我要展示的唯一方法
请帮忙。谢谢。
另外...
这也许是朝着正确方向迈出的一步
$getfans = mysql_query("SELECT DISTINCT user_id, (SELECT COUNT(id)
FROM polls WHERE page_id = $page_id AND user_id = favorites.user_id)
AS posts FROM favorites WHERE favorites.page_id = $page_id AND
favorites.status = 0 ORDER BY posts DESC", $conn);
当我回复$帖子时,它给了我该用户对该页面的民意调查的正确计数。
但是当我试图做多个表时,它只返回一个用户。
例:
$getfans = mysql_query("SELECT DISTINCT user_id, SUM((SELECT COUNT(id)
FROM polls WHERE page_id = $page_id AND user_id =
favorites.user_id)+(SELECT COUNT(id) FROM wiki WHERE page_id =
$page_id AND user_id = favorites.user_id)) AS posts FROM favorites
WHERE favorites.page_id = $page_id AND favorites.status = 0 ORDER BY
posts DESC", $conn);
我找到了解决方案
如果好奇,请在下面阅读我的帖子。