我目前有一个搜索字段使用此代码搜索多个列:
$searchArray = explode(" ", $searchVal);
$query="SELECT * FROM users WHERE ";
$i=0;
foreach ($searchArray as $word) {
if ($i != 0) $query .= " OR ";
$query .= " MATCH (`first_name`, `last_name`, `email`) AGAINST ('".$word."*' IN BOOLEAN MODE)";
$i++;
}
Run Code Online (Sandbox Code Playgroud)
可以说我在表中有这两行:
id | last_name | first_name | email
1 | Smith | John | john_smith@js.com
2 | Smith | Bob | bob_smith@js.com
Run Code Online (Sandbox Code Playgroud)
如果我输入"John S",则只有第一个结果显示哪个是所需行为.
如果我输入"John Smith",则只有第一个结果显示哪个是所需的行为.
如果我键入"Smith J",即使Bob不匹配,两个结果都会显示.
如果我输入"史密斯约翰",两个结果都显示即使鲍勃不匹配.
最后,如果我键入"Jo S",尽管"Jo"和"S"部分匹配,但不会返回任何结果.
任何人都可以帮我修复我的查询,以处理订单所需的功能不重要和部分结果匹配?如果它可以按最佳匹配排序(即单词的最长部分,从第一个字母开始,而不是中间的一个部分,在最高的列数中),这也将是一个巨大的帮助.
更新:
只想发布基于解决方案工作的最终代码.我创建多个匹配语句的循环不正确,因为我的ft_min_word_len.
我的代码现在是:
$searchArray = explode(" ", …
Run Code Online (Sandbox Code Playgroud) 在执行特定于CSS的HTML下拉菜单时,您在代码顶部附近有一些无序列表类型结构.如果您的下拉列表链接到数百个页面,那么在每个页面的代码顶部都有这个大的无序列表会损害该页面的SEO(因为顶部有所有非页面特定的代码)?我只是问,因为我注意到我的谷歌迷你搜索结果被顶部的UL倾斜,直到我发现谷歌迷你特定标签导致它没有索引该部分.
使用javascript从代码底部注入UL的内容或者在底部使用UL但是使用CSS定位来获得最佳效果会更好吗?
不确定我的问题是否清楚.思考?