更新:
我有点更进一步了:

$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绊倒了我的程序,什么也不返回)。
所以:
-约翰尼键入“Elesh Norn”他返回“Elesh Norn,Grand Cenobite”和“Elesh Norn,Grand Cenobite Foil”
-但是,如果约翰尼键入“Elesh Norn Foil”,它会返回一个“找不到卡片!”比赛
这是我的查询语句:
SELECT Name, Amount, CardID FROM modernmasters WHERE Name LIKE '%".$_POST['search']."%'

那么,我需要什么来更改我的查询以使我的搜索不会被绊倒呢?

最佳答案

试试这个。希望能有所帮助。

$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;
}

09-13 13:59