好的,当用户在搜索输入中键入他们的搜索短语时,我希望它与输入的确切短语或关键词匹配。 即 所以帖子的标题是“搜索数据库”
$searchVal = "Search database";
WHERE post_title LIKE '%" . $searchVal . "%'
上面的代码找不到匹配项,因为标题在搜索数据库之间有“the”。
我怎么能让它匹配。 我想可能会爆炸,但我得到一个错误:
$sVals = explode(" ", $searchVal);
foreach ($sVals as $s) {
$querySearchVals .= "OR post_title LIKE '%" . $s . "%'";
}
希望这是有道理的。 干杯
答案 0 :(得分:1)
也许这可以帮助
$search_key = $_POST['searchkey']; //take the search text from the post method
$search_words = array();
$search_words = explode(" ",$search_key);
$q_string = "";
$last_index = intval(count($search_Words)) - 1;
for($i = 0; $i<count($search_Words);$i++)
{
$q_string = $q_string . " post_title LIKE '%$search_words[$i]%' ";
if($i != $last_index)
$q_string = $q_string . " OR ";
}
为了使其更准确,您可以跳过A,The,An等文章
答案 1 :(得分:0)
您可能希望在单词之间插入%并使用1 where子句执行。像下面这样的东西应该有效。
$searchVal = "Search database";
$querySearchVals = "post_title LIKE '%";
$sVals = explode(" ", $searchVal);
foreach ($sVals as $s) {
$querySearchVals .= $s."%";
}
$querySearchVals .= "'";
echo $querySearchVals;
希望它有所帮助!