2010-09-14 68 views
0

我希望在搜索例如“A”时进行搜索,然后每个全名将以“A”开始。 所以,如果名称为“安德烈亚斯布拉布拉”用户将显示PHP:正在搜索“a ..”

我现在有这个权利:

$query = "SELECT full_name, id, user_name, sex, last_access, bostadsort 
       FROM users WHERE full_name LIKE '$_GET[searchUser]'"; 

但我仍然需要为了得到他的查询,搜索“安德烈亚斯布拉布拉”(秀)。所以这是行不通的。

我该怎么做?

+5

请记得使用mysql_real_escape_string($ _ GET [ 'searchUser'])或使用参数化查询 – 2010-09-14 10:16:38

+2

HTTP格式化字符串://imgs.xkcd的.com /漫画/ exploits_of_a_mom.png – Gordon 2010-09-14 10:19:00

回答

4

使用在LIKE comparison输入字符后%元字符:

$query = " … WHERE full_name LIKE '$_GET[searchUser]%'"; 

而且不要忘记验证输入或逃脱将其插入查询时正确输出。

1

使用MySQL通配符,如:

$query = "SELECT full_name, id, user_name, sex, last_access, bostadsort FROM users WHERE full_name LIKE '$_GET[searchUser]%'";

0

用途:

...LIKE '$_GET[searchUser]%'"; 

如果A用户搜索,这将选择其中full_name始于一个A

%是通配符匹配任何东西都行。

2

看来完整的代码会更好,不仅仅是评论

$search = mysql_real_escape_string($_GET['searchUser']); 
$query = "SELECT full_name, id, user_name, sex, last_access, bostadsort 
      FROM users WHERE full_name LIKE '$search%'";