PHP模式匹配搜索系统

时间:2011-04-21 16:21:07

标签: php search design-patterns

我正在尝试根据输入到文本框中的字母进行PHP搜索。我希望它匹配模式并从数据库中找到相关结果。

所以,如果我输入

"Jo Smi"

会找到结果

Ĵo Smith, Pojo Smithson, Ojo Smith

如何实现这一目标。我知道如何从数据库中获取信息,但不知道各个领域的信息。

目标是搜索在user_firstnameuser_lastnameuser_email

字段中搜索的用户

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

您应该可以直接从查询中执行此操作。

获取文本框结果并将其转义然后执行

SELECT * FROM `database` WHERE `name` REGEXP '{INPUT TEXT HERE}';

我觉得这应该有用。

答案 1 :(得分:0)

您可以使用LIKE子句对数据库中的字段进行简单搜索:

$query = "SELECT Fields FROM Table WHERE TestField LIKE '%".$escapedTextString."%'";

答案 2 :(得分:0)

针对搜索字词的大写版本进行LIKE搜索。不要忘记mysql_real_escape_string()

$searchpattern = mysql_real_escape_string(strtoupper("Jo Smi"));
mysql_query("SELECT * FROM table WHERE UPPER(column) LIKE '%$searchpattern%';"); 

答案 3 :(得分:0)

Hello Man以前的回答很好 但你想知道这个信息

  1. 获取变量=> $name = $_GET['name'];

  2. 如果你想把它变成大写的话 使用strtoupper();

  3. 如果你愿意的话 使它小写使用 strtolower();
  4. 如果你愿意的话 搜索你应该替换=与 像where name = $name那样的地方 where name like $name
  5. 此信息
  6. abc%=>变量以abc开头并以任何东西结束
  7. %abc%=>变量启动任何东西,包含abc,用任何东西完成
  8. %abc =>变量启动任何事情,用abc结束