2012-12-10 54 views
1

我的MySQL结构如下:标签和计数

+----+-------------------------+-------------+-----------+--------------+ 
| id | title/text/moretext/img | language_id | course_id | country_code | 
+----+-------------------------+-------------+-----------+--------------+ 
| 1 | Plenty of information |   1 |   3 | it   | 
+----+-------------------------+-------------+-----------+--------------+ 

我使用laravel框架来构建自己的网站。

这是一个食谱。这是一款开胃菜(course_id 3翻译为使用php数组的开胃菜,因为页面是多语言的)。 这个开胃菜是从它。 '它'翻译成意大利,再次使用PHP,因为国名是多语言的。 配方用英文写成(language_id是与语言表的一对多关系,语言id 1是英文)。 这个信息是在它改变任何东西的情况下给出的,我怀疑它,但最好是保证安全。

每篇文章将只有这些标签中的每一个。

我需要的是一个回应所有可用选项的选择列表(与使用中的过滤器相关的选项,所以如果我没有法语南非的食谱,南非将不会显示在过滤器列表中,如果法语是所选语言)。

谷歌什么都没有放弃,我没有时间,我的想法也没有了。有什么办法可以轻松实现吗?

我已经调查了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 

所以每个项目是国家名称和语言。如果大多数国家只有一种或两种语言,这不应该让使用者感到压倒。