我的SQL代碼有問題。那就是:SQL - 搜索表單中的多個表
SELECT fur.*, cat.overskrift, cat.ikon, cat.id AS categoryID, cat.language AS catLang
FROM furniture AS fur
LEFT JOIN furniture_translated AS fur_tra
ON fur_tra.furniture_id = fur.id
LEFT JOIN furniture_categories_translated AS fur_cat_tra
ON ((fur_cat_tra.category_id = fur.category AND fur_cat_tra.language = '".beforeDB($user_language)."')
OR (fur_cat_tra.category_id = fur_tra.category AND fur_cat_tra.language = '".beforeDB($user_language)."'))
LEFT JOIN furniture_categories AS cat
ON (
(fur.category = cat.id AND cat.language = '".beforeDB($user_language)."')
OR
(fur_tra.category = cat.id AND fur_cat_tra.language = '".beforeDB($user_language)."')
)
WHERE
(fur.language = '".beforeDB($user_language)."' OR fur_tra.language = '".beforeDB($user_language)."')
AND
(
((cat.heading LIKE '%".beforeDB($search)."%' AND cat.language = '".beforeDB($user_language)."') OR (fur_cat_tra.heading LIKE '%".beforeDB($search)."%' AND fur_cat_tra.language = '".beforeDB($user_language)."'))
OR
(
(fur.name LIKE '%".beforeDB($search)."%')
OR
(fur_tra.name LIKE '%".beforeDB($search)."%')
)
)
ORDER BY
cat.heading ASC, fur.name ASC
beforeDB是我在PHP做了一個功能..它返回mysql_real_escape_string()的值..
$搜索是搜索時,用戶輸入的字符串。
$ user_language是訪問者的語言代碼。
網站是:
該網站有一個傢俱的列表,是一個多語言的網站。傢俱和類別應該翻譯。應該有可能從每種語言改變類別。舉個例子:我希望可以在英文版的廚房裏放一個架子,讓它在德語版的浴室類別裏。
我想達到的目標:
有一個搜索選項,用戶可以輕鬆找到他們要找的傢俱。他們應該在他們的語言上搜索傢俱。
什麼問題是:
如果我翻譯傢俱,當它翻譯成另一種語言時,我仍然可以搜索英文名稱。例如,如果我有德語作爲我的語言,我搜索了英文名稱;在英文搜索後,我會收到用德語列出的傢俱。這應該是不可能的。
任何幫助,將不勝感激。
我一次只能搜索一種語言。大多數人只會說一種語言,甚至多種語言的用戶(通常)會爲每種語言進行不同的搜索,因爲不僅單詞變化而且整個語境。你確定你必須堅持這種多語言搜索要求嗎? – jean