我写了一个sqlite全文搜索,我做错了。如果我输入我的搜索" Puma Adidas"我想在MAKE列中搜索两个单词。
目前,如果它与搜索词完全匹配,则只显示一个单词。我只是无法弄清楚我错过了什么,请问我有什么帮助吗?
由于
HTML:
<form action="search.php" method="get">
Search: <input type="text" name="SEARCH">
<input type="submit" class="btn btn-default">
</form>
PHP:
$search_string = $_GET['SEARCH'];
$result = $db->query("SELECT * FROM PRODUCTS WHERE MAKE IN('$search_string') AND VISIBLE='YES' ORDER BY DATE DESC");
我确实将PHP代码更改为:
$result = $db->query("SELECT * FROM PRODUCTS WHERE MAKE LIKE ('%$search_string%') AND VISIBLE='YES' ORDER BY DATE DESC");
但不幸的是,它仍然不起作用,同样的问题。
答案 0 :(得分:0)
尝试使用LIKE,而不是IN。 IN用于不同的目的。
$search_string = $_GET['SEARCH'];
$result = $db->query("SELECT * FROM PRODUCTS WHERE MAKE LIKE '$search_string') AND VISIBLE='YES' ORDER BY DATE DESC");
检查LIKE语句的语法;如果要在整个字段中搜索搜索字词,则需要使用百分号包围搜索字符串。