我试图根据输入到文本框中的字母进行PHP搜索。我希望它匹配一个模式并从数据库中找到相关结果。PHP模式匹配搜索系统
所以,如果我在
"Jo Smi"
键入它会发现结果
Ĵo Smith, Pojo Smithson, Ojo Smith
如何将一个做到这一点。我知道如何从数据库中获取信息,但不是各个领域的一部分。
的目标是通过用户领域user_firstname
,user_lastname
和user_email
任何想法搜索来搜索?
我试图根据输入到文本框中的字母进行PHP搜索。我希望它匹配一个模式并从数据库中找到相关结果。PHP模式匹配搜索系统
所以,如果我在
"Jo Smi"
键入它会发现结果
Ĵo Smith, Pojo Smithson, Ojo Smith
如何将一个做到这一点。我知道如何从数据库中获取信息,但不是各个领域的一部分。
的目标是通过用户领域user_firstname
,user_lastname
和user_email
任何想法搜索来搜索?
您应该可以直接从您的查询中做到这一点。
获取文本框结果和逃避他们,那么做
SELECT * FROM `database` WHERE `name` REGEXP '{INPUT TEXT HERE}';
这应该工作,我认为。
LIKE会更快,但您可以从REGEXP获得更准确的结果。取决于你的需要 – 2011-04-21 16:26:24
您可以使用LIKE子句在数据库领域做简单的搜索:
$query = "SELECT Fields FROM Table WHERE TestField LIKE '%".$escapedTextString."%'";
做对你的搜索词的大写的版本LIKE
搜索。别忘了mysql_real_escape_string()
。
$searchpattern = mysql_real_escape_string(strtoupper("Jo Smi"));
mysql_query("SELECT * FROM table WHERE UPPER(column) LIKE '%$searchpattern%';");
你好人以前的答案是好的 ,但你要知道这个信息
得到变量=>$name = $_GET['name'];
,如果你想让它大写 使用
strtoupper();
strtolower();
where name = $name
到 where name like $name
,什么是问题? – hsz 2011-04-21 16:22:09
所有这些都是正确的答案:'喜欢和通配符',但是,简单地将不被接受的文本放入SQL语句中可能存在安全风险(观察者使用'$ escapedTextString'提示此问题。 – horatio 2011-04-21 17:10:24