帝国CMS您现在的位置是:首页 > 博客日志 > 帝国CMS

帝国cms后台之管理信息全文检索功能实现

<a href='mailto:'>微wx笑</a>的头像微wx笑 2021-11-04帝国CMS 6 0关键字: 帝国cms  EXISTS  全文检索  

在使用帝国cms后台的管理信息功能的时候,特别管理未审核的没有发布的内容的时候,经常需要搜索文章的内容“newstext”字段是否包含某个关键词,但是本身是不支持的,所以就需要修改一下,这里记录一下实现的方法。

无知人生,ivu4e.com,ivu4e.cn

由于只是需要查询,所以这里用到了SQL语言中的功能。1Yi无知

修改文件:1Yi无知

/e/admin/ListAllInfo.php1Yi无知


1Yi无知

修改方法:1Yi无知

1、在以下代码1Yi无知

$infotb=ReturnInfoMainTbname($tbname,$indexchecked);

下面添加1Yi无知

$infodatatb=ReturnInfoDataTbname($tbname,$indexchecked); //返回信息副表

2、修改条件查询语句,大约在229行1Yi无知

if($show==0)//搜索全部
    {
        $where.=$and."(title like '%$keyboard%' or username like '%$keyboard%' or id='$keyboard' or keyboard like '%$keyboard%' or EXISTS(select id from `$infodatatb` dt where dt.id=$infotb.id and dt.newstext like '%$keyboard%'))";
    }

关键的部分就是1Yi无知

 or EXISTS(select id from `$infodatatb` dt where dt.id=$infotb.id and dt.newstext like '%$keyboard%')


1Yi无知

EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False1Yi无知

EXISTS 指定一个子查询,检测 行 的存在。1Yi无知


1Yi无知

语法: EXISTS subquery1Yi无知

参数: subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。1Yi无知

结果类型: Boolean 如果子查询包含行,则返回 TRUE ,否则返回 FLASE 。1Yi无知


1Yi无知

无知人生,ivu4e.com,ivu4e.cn

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/EmpireCMS/2021-11-04/786.html

很赞哦! () 有话说 ()