类似于Facebook的PHP/MySQL筛选搜索

3
我正尝试使用PHP和mysql数据库为Wordpress网站构建一个简单的自定义搜索,可以返回来自许多不同表格(如“Groups”,“Users”和“Sites”)的结果,其中每个表格的数据都与正在搜索的另一个表格无关。我希望构建一个类似Facebook的搜索,它可以根据结果类型对结果进行分组。
我已经建立了各个查询,但我卡在如何将它们全部联系在一起以便可以过滤结果类型并像Facebook一样对它们进行分组。有没有简单的方法告诉我们结果来自哪个表格,或者这完全是错误的方向?我不了解足够的mysql最佳实践。这是我正在运行的示例查询:
SELECT 
    name, slug
FROM 
    ".$bp->groups->table_name."                              
WHERE 
    name LIKE '%".$search_string."%'
        OR 
    name = '%".$exp_string[0]."%'
        OR 
    name IN ('".$join_string."');

什么是“slug”?它是“table_name”表中的一列吗? - Malachi
1
@Malione 请查看此链接:http://codex.wordpress.org/Glossary#Slug。 - Jared Eitnier
看一下MySQL全文搜索功能,它可能不能完全解决你的问题,但可以让你更接近解决方案。这里有基本解释官方文档的链接。 - Keval Malde
@maldy 这不需要 MyISAM 数据库吗? WP 是 InnoDB。 - Jared Eitnier
哎呀,我的错,它需要使用MyISAM :( - Keval Malde
1个回答

1

试试这个:

SELECT 
    name, slug, '$bp->groups->table_name' as table
FROM 
    ".$bp->groups->table_name."                              
WHERE 
    name LIKE '%".$search_string."%'
        OR 
    name = '%".$exp_string[0]."%'
        OR 
    name IN ('".$join_string."');

这应该将表名输出到结果中。我不知道你之后想如何分组它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接