按标签过滤标签并计数
Posted
技术标签:
【中文标题】按标签过滤标签并计数【英文标题】:Filter tags by tags and count 【发布时间】:2012-11-28 00:45:58 【问题描述】:我的mysql结构如下:
+----+-------------------------+-------------+-----------+--------------+
| id | title/text/moretext/img | language_id | course_id | country_code |
+----+-------------------------+-------------+-----------+--------------+
| 1 | Plenty of information | 1 | 3 | it |
+----+-------------------------+-------------+-----------+--------------+
我正在使用 laravel 框架来构建我的网站。
这是一个食谱。它是一道开胃菜(course_id 3 使用 php 数组转换为开胃菜,因为页面是多语言的)。 这道开胃菜来自它。 'it' 在 PHP 中再次翻译为意大利,因为国家名称将是多语言的。 配方是用英语编写的(language_id 是与语言表的一对多关系,语言 id 1 是英语)。 提供此信息以防万一它改变任何东西,我对此表示怀疑,但最好谨慎行事。
每篇文章只有一个标签。
我需要的是一个与所有可用选项相呼应的选择列表(与正在使用的过滤器相关的选项,因此,如果我没有来自南非的法语食谱,如果法语是选择的语言)。
Google 一无所获,我的时间不多了,我的想法为零。有什么方法可以轻松实现吗?
我研究了http://luis-almeida.github.com/filtrify/ 并认为这正是我想要的功能,但我认为它对大型数据库来说太重了,因为我必须查询整个数据库并列出一个列表从中。但我可能错了。
使用类似http://harvesthq.github.com/chosen/ 的实现也可以用于选择,但我什至不知道如何实现它。
任何帮助都会非常棒。我在这里完全超出了我的头脑,并且完全没有编程热情。我已经花了几天的时间在这上面画一个空白。没有别的要问了。
【问题讨论】:
【参考方案1】:一种快速而肮脏的方式来解决这个问题(您可以随时回来并在以后增强它)是
SELECT DISTINCT country_code, language_id
FROM recipes
ORDER BY country_code, language_id
使用任何必要的连接/翻译来获取国家/地区名称和语言名称,然后从结果中创建一个下拉列表...
Deutschland - Deutsch
France - Francais
South Africa - Afrikaans
South Africa - English
United States - English
所以每个项目都是国家名称和语言。如果大多数国家/地区只使用一种或两种语言,那么这对用户来说不应该是压倒性的。
【讨论】:
以上是关于按标签过滤标签并计数的主要内容,如果未能解决你的问题,请参考以下文章