PHP搜索不同语言的表单数据

时间:2017-05-16 10:13:05

标签: php forms search

我有三种不同语言的表单,并在单个数据库中存储信息。我有搜索页面,通过选择下拉菜单从数据库中搜索数据。但是当用户搜索时,他只能使用他正在使用的语言获得结果。我需要根据用户的选择显示所有语言的结果。我怎样才能实现这个目标?任何想法和帮助表示赞赏。

评论的更多细节:

这是一个培训师注册并且学生搜索培训师的网站。当培训师注册时,他填写表格并从下拉菜单中选择例如扇区。并且网站有3种不同语言的版本。当学生搜索培训师时,他选择一个部门,我想显示与所选部门相关的所有结果,无论培训师注册和用户使用的语言如何。

我有一个数据表如下

// Table : data
// --------------------------------------------
// username     | name     | sector_id  | lang
// --------------------------------------------
//   jack       |  Jack    | 1      | en
// --------------------------------------------
//   smith      |  Smith   | 1      | fr
// --------------------------------------------

和Sector表如下

// Table : sector
// --------------------------------------------
// sector_id | sector_eng| sector_sp    | sector_fr
// --------------------------------------------
//   1       |  Finance  | Financiar    | la finance
// --------------------------------------------

例如,当用户搜索行业财务时,我需要获取杰克和史密斯的所有数据,但是显示为史密斯和财务杰克的财务

2 个答案:

答案 0 :(得分:1)

假设您支持3种语言(英语,西班牙语,法语)和让我们以金融部门为例。无论您为金融行业存储什么数据,都会为各自的语言制作3个版本的数据。存储在您的数据库中。

但是,当您的用户搜索任何数据时 - 仅搜索ENGLISH版本的数据。然后,在获得结果(英文版)之后,获取其他不同版本的所有类似数据(这里也将是西班牙语,法语)。然后,根据用户的偏好显示各自的版本数据。

希望它会帮助你。

以下是根据您在问题中分享的用例的示例表结构。根据您不熟悉的应用程序复杂程度,它可能会有所不同。但是,希望它能为你提供一些基本的理解。

// 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
// ---------------------------------

答案 1 :(得分:0)

您可以使用父子结构,这样您就可以使用多种语言。

例如,

语言在所有系统中定义为tow char(ar,en,de,fr..etc)。

所以你的桌子就像这样

扇区表

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 );

参考

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

How to create a MySQL hierarchical recursive query