在批量删除文章前,首先得熟悉用数据库增加一篇文章时变动的有哪些表
先手动在PHPCMS后台添加一篇文章,参数尽可能的详细,附件,推荐位,相关文章,能加的都加上,然后查看数据库,把表信息复制下来,删除文章后再次复制数据库表信息,用BeyondCompare进行比较,方法跟上面提到的文章相同。
通过比较发现以下几个表有所变动
v9_attachment、v9_attachment_index、v9_hits、v9_log、v9_news、v9_news_data、v9_position_data、v9_search
实际上PHPCMSV9删除文章并不完善,其实还有2个表中的内容也应该删除,它们的作用是用来存储文章关键字,以及哪些文章用了同一个关键字,这2个表分别为 v9_keyword 和 v9_keyword_data
其中 v9_log 表不用理会,他记录的是 后台操作日志,记录着增加文章,删除文章,编辑文章的操作日志
重点关注的数据表
v9_attachment 附件信息
v9_attachment_index 附件id和文章id的关系
v9_hits 文章点击次数
v9_news 文章主要信息
v9_news_data 文章内容及相关信息
v9_position_data 记录有推荐位的文章有哪些
v9_search 文章搜索词,搜索表中记录的词显示对应的文章
v9_keyword 文章关键字
v9_keyword_data 文章和关键字的关系
删除一篇文章要牵扯到这么多表,分析将会是一个浩大的工程啊!
咱们就以删除指定分类下的所有文章为例;首先得获取到要删除的文章id有哪些,然后就是了解各个表跟文章id的关系,以下是我的分析
表v9_attachment_index 字段keyid格式 c-6-3、c-7-5,第2个参数6、7为分类id,第3个参数3、5为文章id;通过keyid可以获取到对应的aid,而这里的aid跟表v9_attachment的aid是一一对应的,所以通过aid可以同时删除表v9_attachment和表v9_attachment_index的内容
表v9_hits中字段hitsid格式c-1-2、c-1-3 其中第3个参数2、3为文章id
表v9_news和表v9_news_data中的字段id即为文章id,且他们的id是一一对应的,可以很方便的同时删除这2个表中的信息
表v9_position_data 字段id即为文章id
表v9_search 字段id即为文章id
表v9_keyword_data 字段 contentid 格式 2-1、3-1,前面的数字2、3为文章id;字段tagid为关键字id,与表 v9_keyword中的id字段对应,也可以很方便的同时删除这2个表的信息
以下是完整的PHP代码
为了方便大家使用,我把他写到php文件中去,提供给大家下载
相关文章
PHPCMS 统计栏目下子栏目数量的代码2024-11-12
PHPCMS V9 上传图片或附件后后台退出需要重新登录的解决办法2021-06-19
PHPCMS 推荐位输出组图的方法2020-12-30
PHPCMS内容页自定义下拉菜单循环输出数值的方法2020-12-17
PHPCMS v9 search模块搜索栏目名称二次开发2020-02-20
PHPCMS删除文章后数据库中仍有删除文章中的关键词解决办法2019-11-13
PHPCMS中TAG模板、COMMENT模板等不能使用{SITEURL($SITEID)}函数2019-11-13
PHPCMS V9编辑器中新增上传mp4视频(上传视频并插入HTML5的video标签)的功能2019-10-30
PHPCMS一些漏洞修复及解决方案2019-07-10
PHPCMS的产品筛选功能(通用)2019-04-09