2015-05-24 45 views
3

UPDATE:搜索多字PHP

我遠一點有:

$query = mysql_real_escape_string($_POST['search']); 
$keywords = explode(" ", $query); 
foreach ($keywords as $keys) { 
$search_sql .= " AND Name LIKE '%$keys%' "; 
} 

但它仍然沒有返回。

我找不到這個,因爲我不確定如何說出它。基本上,當一個用戶查詢我的數據庫時,我想要退回這張卡片,但是如果用戶錯過了中間的一個單詞(比如他詢問Elesh Norn Foil,因爲他們沒有詢問Elesh Norn,Grand Cenobite Foil恰恰是Grand Cenobite跳過我的程序並返回一切)。

所以:

-Johnny類型 「Elesh諾恩」 他回來 「Elesh諾恩,大修道士」 和 「Elesh諾恩,大修道士箔」

-However,如果約翰尼類型 「Elesh諾恩箔」它返回一個「找不到卡!」比賽

這裏是我的查詢語句:

SELECT Name, Amount, CardID FROM modernmasters WHERE Name LIKE '%".$_POST['search']."%' 

所以我不得不改變我的查詢,所以我的搜索沒有得到絆倒了?

+0

分割空間的檢索詞,在n搜索每一個與OR - 或使用全文搜索 –

+1

用或搜索將返回各種結果都可能是不相關的。我會用一個AND。 –

+1

@HoboSapiens但FOIL然後會失敗,他想第一場比賽 –

回答

3

試試這個。希望它會有所幫助。

$search_sql = "SELECT Name, Amount, CardID FROM modernmasters WHERE"; 
$query = mysql_real_escape_string($_POST['search']); 
$keywords = explode(" ", $query); 
$keyCount = 0; 
foreach ($keywords as $keys) { 
    if ($keyCount > 0){ 
     $search_sql .= " AND"; 
    } 
    $search_sql .= " Name LIKE '%$keys%'"; 
    ++$keyCount; 
} 
+0

日光,我愛你!你有它的工作! –