PHP搜索不同语言的表单数据
我有一个三种不同语言的表单,并将信息存储在一个数据库中。我有一个搜索页面,通过选择下拉菜单从数据库中搜索数据。但当用户搜索时,他只会得到他使用的语言的结果。我需要根据用户选择显示所有语言的结果。我怎样才能达到这个目标?任何想法和帮助都将不胜感激 评论中的更多详细信息: 这是一个培训师注册和学生搜索培训师的网站。当培训师注册时,他填写表格,并从下拉菜单中选择扇区。该网站有3个不同语言的版本。当学生搜索培训师时,他选择了一个部门,我想显示与所选部门相关的所有结果,而不考虑注册的语言培训师和用户使用的语言 我有一个如下的数据表PHP搜索不同语言的表单数据,php,forms,search,Php,Forms,Search,我有一个三种不同语言的表单,并将信息存储在一个数据库中。我有一个搜索页面,通过选择下拉菜单从数据库中搜索数据。但当用户搜索时,他只会得到他使用的语言的结果。我需要根据用户选择显示所有语言的结果。我怎样才能达到这个目标?任何想法和帮助都将不胜感激 评论中的更多详细信息: 这是一个培训师注册和学生搜索培训师的网站。当培训师注册时,他填写表格,并从下拉菜单中选择扇区。该网站有3个不同语言的版本。当学生搜索培训师时,他选择了一个部门,我想显示与所选部门相关的所有结果,而不考虑注册的语言培训师和用户使用的
// Table : data
// --------------------------------------------
// username | name | sector_id | lang
// --------------------------------------------
// jack | Jack | 1 | en
// --------------------------------------------
// smith | Smith | 1 | fr
// --------------------------------------------
// Table : sector
// --------------------------------------------
// sector_id | sector_eng| sector_sp | sector_fr
// --------------------------------------------
// 1 | Finance | Financiar | la finance
// --------------------------------------------
和部门表如下所示
// Table : data
// --------------------------------------------
// username | name | sector_id | lang
// --------------------------------------------
// jack | Jack | 1 | en
// --------------------------------------------
// smith | Smith | 1 | fr
// --------------------------------------------
// Table : sector
// --------------------------------------------
// sector_id | sector_eng| sector_sp | sector_fr
// --------------------------------------------
// 1 | Finance | Financiar | la finance
// --------------------------------------------
例如,当用户搜索部门金融时,我需要获得jack和smith的所有数据,但在结果中显示la Finance For smith和Finance For jack假设您支持3种语言(英语、西班牙语、法语)&让我们以金融部门为例。无论您为金融部门存储什么数据,请将这些数据的3个版本分别存储在各自的语言中,并存储在您的数据库中 但是,当您的用户将搜索任何数据时-只搜索英文版数据。然后,在得到结果(英语版本)后,也获取其他不同版本(这里是西班牙语、法语)的所有类似数据。然后,根据用户的喜好显示相应的版本数据 希望对你有帮助 下面是一个示例表结构,它与您在问题中共享的用例有关。根据应用程序的复杂程度,可能会有所不同,我不知道。但是,希望它能给你一些基本的理解,让你继续前进
// Table : sector
// ---------------------------------
// sector_id | sector_name_eng
// ---------------------------------
// 1 | Finance
// ---------------------------------
// 2 | Statistics
// ---------------------------------
// 3 | Biology
// ---------------------------------
// Table : lang_reference
// ------------------------------
// lang_id | lang_name
// ------------------------------
// 1 | english
// ------------------------------
// 2 | spanish
// ------------------------------
// 3 | french
// -----------------------------
// Table : sector_lang_details
// --------------------------------------------
// sector_id | lang_id | sector_name
// --------------------------------------------
// 1 | 1 | Finance
// --------------------------------------------
// 1 | 2 | Financiar
// --------------------------------------------
// 1 | 3 | Finance_in_french
// --------------------------------------------
// 2 | 1 | Statistics
// --------------------------------------------
// 2 | 2 | Statistics_in_spanish
// --------------------------------------------
// 2 | 3 | Statistics_in_french
// --------------------------------------------
// 3 | 1 | Biology
// --------------------------------------------
// 3 | 2 | Biology_in_spanish
// --------------------------------------------
// 3 | 3 | Biology_in_french
// ---------------------------------------------------
// Table : trainer_details
// --------------------------------
// trainer_id | trainer_name
// ---------------------------------
// 1 | Tariner A
// ---------------------------------
// 2 | Tariner B
// ---------------------------------
// 3 | Tariner C
// ---------------------------------
// Table : trainer_teches_sectors
// ---------------------------------
// trainer_id | sector_id
// ---------------------------------
// 1 | 1
// ---------------------------------
// 1 | 2
// ---------------------------------
// 2 | 1
// ---------------------------------
// 3 | 3
// ---------------------------------
您可以使用父子结构,这将允许您使用多种语言 比如说 所有系统中的语言都定义为两个字符(ar、en、de、fr等) 所以你的桌子是这样的
select * from sector where language="en" and (id=$id or parent_id=$id );
扇区表
id - sector_name - parent_id - language
1 - Sector in English - null - en
2 - Sector in French - 1 - fr
3 - Sector in Spain - 1 - sp
- parent_id是一个外键,当记录为父项时,该外键将为null,当当前记录为子项时,该外键将具有父项id
select * from sector where language="en" and (id=$id or parent_id=$id );
参考文献
那么数据是如何存储的呢?您是否使用了任何框架?你已经试过什么了?@DestinatioN,我不知道该怎么办。首先,我尝试用不同的语言在下拉菜单中显示数据,并仅用一种语言存储数据。但在搜索中它是problem@DestinatioN,以不同语言存储的数据,当用户注册时,他从下拉菜单中选择(例如:扇区->IT)并按表单所示存储数据。我不使用任何框架,如果你想显示所有的结果只是不考虑你的内部部门query@DestinatioN,例如,如果用户搜索金融部门,我希望以所有语言显示有关金融部门的结果。有很多扇区,我想显示用户选择的结果谢谢你的回答。让我更详细地解释我的表格,也许你会有更相关的解决方案。这是一个培训师注册和学生搜索培训师的网站。当培训师注册时,他填写表格,并从下拉菜单中选择扇区。该网站有3个不同语言的版本。当学生搜索培训师时,他选择了一个部门,我想显示与所选部门相关的所有结果,而不考虑注册的语言培训师和用户使用的语言。Ok。那么,你在实现这一点时面临的问题是什么?如果它们是完全不同的词,我如何比较它们?例如,如果用户从下拉列表中选择Finance,php将如何获得financiar(西班牙语)的结果?完全不同的词!!!你能举个例子吗?我对你们的要求有点困惑。例如,数据库中有两个培训师。其中一个以英文版注册,并被选为金融行业。其他培训师以西班牙语版本注册,并选择行业作为Financiar。学生使用英文版本进行搜索,并在“部门”下拉菜单中选择“金融”。我需要显示金融(金融)部门所有培训师的培训结果,无论他们注册时使用何种语言(我的意思是在本例中显示这两名培训师),为什么在西班牙的课程中家长id也是1?因为法语和西班牙都是从原始名称翻译过来的,即英语-id=1,如果这是一个愚蠢的问题,我很抱歉,但我将如何提供部门名称的翻译版本?我的意思是php将如何理解西班牙语版本的Finance是Financial?通过语言参数,您将其存储在每个记录中。从language=“sp”和(id=$id或parent_id=$id)所在的课程中选择*;您必须通过cookie或会话等存储用户语言