有关使用PHP和MySQL编写搜索功能的建议

时间:2010-12-15 15:41:44

标签: php mysql design-patterns search

我正在开发一个Web应用程序,其中一部分包含允许用户在数据库中的7个表中搜索多个字段的功能。

用户可以搜索(例如)

名字 - 文字
姓氏 - 文字
高度 - 选择
年龄最小 - 选择
年龄最大值 - 选择
喜欢的颜色 - 选择
学院 - 选择

......还有更多

HTML搜索表单将包含文本字段,许多选择下拉列表和一些复选框。

任何人都可以提供任何建议,最佳实践,设计模式或资源来协助解决此类问题。

非常感谢提前。

3 个答案:

答案 0 :(得分:1)

您需要在sql和通配符搜索字符中使用LIKE运算符。

SELECT
  * 
FROM
  users
WHERE
  first_name LIKE '%".$first_name."%' ||
  age > '".$age."'

答案 1 :(得分:0)

我不会尝试在SQL中构建关键字搜索功能。您应该阅读MySQL的内置全文搜索功能。尝试通过基本SQL进行全面搜索在运行时开发和缓慢是非常耗时的。

全文搜索的基本思想是两个系统的组合。首先,Indexer,它为您的数据库读取关键字并创建它们的“索引”。其次,搜索者查看索引器创建的目录以创建搜索结果。

有第三方工具 - Lucene,Xapian,Sphinx--它们自己的Indexer / Searcher打包。我使用Xapian取得了一些成功。

答案 2 :(得分:0)

  

HTML搜索表单将包含文本字段,许多选择下拉列表和一些复选框。   任何人都可以提供任何建议,最佳实践,设计模式或资源来帮助解决这类问题。

我建议Google举例说明搜索的最佳用户界面。不要给我很多繁琐的字段,只有一个文本字段,所以我可以输入“Shirley Jones UAF”