【发布时间】:2015-05-24 21:15:43
【问题描述】:
更新:
我更进一步:
$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 Norn”,他返回“Elesh Norn,Grand Cenobite”和“Elesh Norn,Grand Cenobite Foil”
-但是,如果 Johnny 输入“Elesh Norn Foil”,则返回“未找到卡片!”匹配
这是我的查询语句:
SELECT Name, Amount, CardID FROM modernmasters WHERE Name LIKE '%".$_POST['search']."%'
那么我必须将我的查询更改为什么,这样我的搜索才不会出错?
【问题讨论】:
-
在空间上分割搜索词,n 搜索每个用 OR - 或使用全文搜索
-
使用 OR 搜索会返回各种可能不相关的结果。我会使用 AND。
-
@HoboSapiens 但是 FOIL 会在他想要的第一场比赛中失败
-
谢谢你们,我会通过做爆炸来做到这一点,或者我该怎么做?
-
你现在真的不应该使用mysql_函数。