返回匹配多个查询标记的搜索结果?

时间:2017-02-28 18:09:33

标签: php mysql html5 laravel laravel-5

我正在使用基于Laravel的OctoberCMS

我有一个html搜索字段,查询字符串用php解析。

Laravel使用MySQL tag根据网址WHERE LIKE参数返回数据库结果。

它适用于1个标签,但如何返回匹配多个以逗号或空格分隔的标签的结果?

HTML5搜索输入

<form action="/search">
  <input type="search" name="tags" multiple>
  <button type="submit">search</button>
</form>

单个标签搜索

localhost/search?tags=galaxy

多个标签搜索

逗号 localhost/search?tags=galaxy%2C+stars%2C+universe
空间 localhost/search?tags=galaxy+stars+universe

这应该返回数据库表的标签列中匹配的任何标签。

问题在于它将查询视为galaxy AND stars AND universe而不是单个标记:galaxystarsuniverse

搜索结果

$query_string = $tags = '';

$query_string = getenv('QUERY_STRING');

// Return search results matching query string
return $query->where('tags', 'like', "%$tags%");

$query是OctoberCMS的一部分。

实施例

results

问题

problem

1 个答案:

答案 0 :(得分:0)

混淆,.尝试使用逻辑OR在表格列中查找值可能会有所帮助,如果您从网页中找到它首先获取功能中的元标记,例如google use search for search result