我有一个输入框,用户可以在其中输入标签,当他们提出问题时。它们用逗号分隔,如下所示:
test1, test2, test3, test4
我的questions
表结构是:
为了显示我刚刚使用的问题的标签,explode(",", $qinfo['tags'])
然后是一个foreach
循环。
但是,我不知道如何在单独的“流行标签”页面上显示从最流行到最不流行的标签。
谢谢你的帮助!
您应该将标签单独放入其他表中(不以逗号分隔)。
您应该创建tags
和questions_tags
表。
tags
----
id
name
questions_tags
-------------
id
question_id
tag_id
并获取按受欢迎程度排序的标签:
SELECT t.id, t.name, COUNT(qt.id) AS total
FROM tags t
LEFT JOIN questions_tags qt ON t.id=qt.tag_id
GROUP BY t.id, t.name
ORDER BY total DESC
但我建议您将该tags
字段保留在questions
表格中。将其用于缓存。例如:如果您显示单个问题,则无需查询tags
andquestions_tags
表。