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 配列を使用して前菜に変換されます)。この前菜はそれからです。国名が多言語化されるため、'it' はイタリアに変換されます。これも PHP です。レシピは英語で書かれています (language_id は言語テーブルとの 1 対多の関係であり、言語 ID 1 は英語です)。この情報は、何かを変更する場合に備えて提供されますが、それは疑わしいですが、安全にプレイすることをお勧めします.

各記事には、これらのタグが 1 つだけ含まれます。

必要なのは、使用可能なすべてのオプションをエコーする選択リストです (使用中のフィルターに関連するオプションなので、フランス語で南アフリカのレシピがない場合、選択した言語がフランス語の場合、南アフリカはフィルター リストに表示されません)。 .

Google からは何も得られませんでした。時間がなくなり、私のアイデアはゼロです。これを簡単に実装する方法はありますか?

http://luis-almeida.github.com/filtrify/を調べたところ、機能的にはまさに私が望んでいるものだと思いますが、大規模なデータベースでは重すぎると思います。データベース全体にクエリを実行し、そこからリストを作成します。しかし、私は間違っているかもしれません。

http://harvesthq.github.com/chosen/のようなものを使用した実装も選択可能ですが、これを実装する方法さえわかりません。

どんな助けも本当に素晴らしいでしょう。私はここで頭がいっぱいで、プログラミングへの情熱がすべてなくなっています。私はすでにこれに数日を費やしており、空白を描いています。他に尋ねることはありません。

4

1 に答える 1

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

したがって、各項目は国名と言語の両方です。ほとんどの国で 1 つまたは 2 つの言語しか話されていない場合、これはユーザーを圧倒するものではありません。

于 2012-12-11T23:27:46.390 に答える