2010-09-14 22 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%'";