小李SEO博客

网站优化服务

帝国cms网站新闻文章数据表自增ID继续连续方法

写本文章的起因是有个小伙伴用帝国CMS做了一个小说站点,他发布小说的时候按照每个章节一个信息的业务逻辑,等发布完了以后才发现有个章节遗漏了,如果他继续补上这个章节,由于前台输出排序是按照自增ID来排序的,那么这个补上的章节无疑就会出现再小说最后,肯定是不符合逻辑了!那么需要解决的问题就是:如何在自增数据表内插入一行数据,而且要让ID继续连续!那么有小伙伴会问:直接去数据库改ID不就完事了么?先不说自增ID让不让直接改,就算让改,小说如果有几千章节那不是累死了!

所以解决方案我记录一下:以下案例使用帝国CMS新闻NEWS表做范例。(注意备份你的数据库,切记!)首先我们要解决自增列不能改动ID的问题,使用如下数据库命令:(为什么是3条?答:帝国CMS如果要改动一条内容数据就要涉及到3个表。语句每行是一个,请一条条执行!)ALTER TABLE `phome_ecms_news` CHANGE id id INT(10) UNSIGNED NOT NULL ;ALTER TABLE `phome_ecms_news_index` CHANGE id id INT(10) UNSIGNED NOT NULL ;ALTER TABLE `phome_ecms_news_data_1` CHANGE id id INT(10) UNSIGNED NOT NULL ;

然后我们要取消ID主键问题:alter table phome_ecms_news modify id int(10),drop primary key;alter table phome_ecms_news_index modify id int(10),drop primary key;alter table phome_ecms_news_data_1 modify id int(10),drop primary key;继续,我们查看需要插入的数据之后的ID号:比如说ID:88 后面要插入数据,那么我们就要把ID为88后面所有的ID号都+1,我们才能插入一个ID:89。 (也就让原来的89变成了90, 90变成了91……)

需要用的语句为:update phome_ecms_news set id=id+1 where id>88;update phome_ecms_news_index set id=id+1 where id>88;update phome_ecms_news_data_1 set id=id+1 where id>88;继续:现在我们发布一个信息,就是需要补的那个信息,当然也可以是已经发布过的。我们找到这个文章的ID并记住这个ID,比如说ID为666。

那么我们要把这个ID变成89了!语句:update phome_ecms_news set id=89 where id=666;update phome_ecms_read_zj_index set id=89 where id=666update phome_ecms_read_zj_data_1 set id=89 where id=666这样我们就搞定了插入了!下面再把主键和自增改回去!

恢复主键:alter table phome_ecms_news add primary key(id);alter table phome_ecms_news_index add primary key(id);alter table phome_ecms_news_data_1 add primary key(id);恢复自增:ALTER TABLE `phome_ecms_news` CHANGE id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;ALTER TABLE `phome_ecms_news_index` CHANGE id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;ALTER TABLE `phome_ecms_news_data_1` CHANGE id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;OK了全部搞定了!记得最后在后台-系统-数据更新-更新信息页地址-选择你的数据表,按照ID更新(重要),然后再去生成首页 栏目和所有内容(全部更新打钩),要不然内容URL地址是不会变的哦!

上一篇:帝国cms网站GBK编码使用AJAX提交数据中文乱码解决方法 下一篇:帝国cms跨域上传支持定义返回字段和扩展名插件
相关帝国cms文章阅读
  • 帝国cms网站扣点充点会员升级智能引导逻辑功能

    小李网络公司介绍帝国cms网站扣点充点会员升级智能引导逻辑功能知识,包括帝国CMS下载智能提醒扣点和充值(下载前提醒扣点数,点数不足跳转充值),帝国CMS 7.5版本升级功能列表 帝国cms - 安...

  • 帝国CMS判断文章信息星期几发布

    php判断文章信息星期几发布?php$week=array('星期日','星期一','星期二','星期三','星期四','星期五','星期六');$w=date(w,$navinfor['newstime']);echo $week[$w];?如果想显示英文的日期,可以把w改成大写的 D...

  • 帝国CMS同时发布到以下栏目:采用索引链链方式,怎样避免文章重复调用

    发布文章时,同时发布到以下栏目: 采用索引链链方式,怎样避免重复文章调用? 比如: 在A栏目下发布某篇文章01(id为1),采用索引链接同时发布到B栏目(生成文章02,ID为2),但是外部链接的...

  • 解决帝国CMS设置关键词与内容图片链接冲突问题

    以下是解决方法,已测试! 在e/class/functions.php中,查找代码: function ReplaceKey($newstext,$classid=0) 或 //替换关键字(有时打开为utf-8时中文显示为乱码) 把这一大段大部分(即://替换关键字部分)...

  • 帝国CMS下载不采用弹出窗口式说明

    6、下载不采用弹出窗口式说明 如果不采用弹出式下载的话,可依以下步骤完成: 1.修改下载地址模板("公共模板" -> "修改下载地址模板"): 将: [ a href=#edown onclick=window.open('!---dow...

  • 帝国CMS添加百度地图标注方法

    给帝国CMS任意模型加上百度地图标注功能。 第一步:首先在模型建立三个字段: 字段名:map_x 字段类型:DOUBLE 字段名:map_y 字段类型:DOUBLE 字段名:map_z 字段类型:TINYINT 最好设置个默认值...

  • 帝国CMS电影播放页调用上一集、下一集的方法

    打开播放器的php文件 在eDownSysplay下 比如 flasher.php 查找这行代码: ViewOnlineKFen($showdown_r,$u,$u[$user_userid],$classid,$id,$pathid,$r); 在下行新一行添加以下代码: $pathid1=$pathid-1; $pathid2=$pathid+1; 以下是调...

  • 帝国CMS导航调用自定义页面高亮识别当前页面方法

    常常需要利用自定义页面来制作单页面,并放置在导航里,又希望能实现当前自定义页面高亮 [e:loop={'select id,path,title from [!db.pre!]enewspage where classid=1 order by id',20,24,0}] ?php $pageurl=$public_r['newsur...

  • 帝国cms跨域上传支持定义返回字段和扩展名插件

    小李网络公司介绍帝国cms跨域上传支持定义返回字段和扩展名插件知识,包括跨域是什么帕提亚帝国cors跨域帝国霸主帝国的崛起跨域处理nginx跨域为什么要跨域允许跨域跨域ajax跨域什么意思js跨...

  • 帝国CMS内容模板获取所有分页数和当前分页号的方法

    有时候需要在内容页做一些漂亮的格式,或者特殊的应用,比如获取所有分页数量和当前分页号,当时帝国并没有给这两个功能的调用标签,那么如何来做呢? 只需要修改一个文件就行了,然...

  • 帝国CMS返回TAG结果页面URL地址可以带的参数网址调用详解!

    网址调用tag和 tag地址:/e/tags/?tagid=tagsID 或者 /e/tags/?tagname=tags名称 tagsid或tagname后面还可以用符号附加以下条件 mid=1数据模型id tempid=1模型的模板id orderby排列方式 classid=34栏目id line=5调用条数 如...

  • 帝国cms刷新phomeecmsdoesn'texist错误修复插件

    刷新内容页时候经常会遇到这种错误 所以制作个插件分享给大家! 出错原因: 1.栏目被删除了 但是数据库仍然有数据 就导致获取不到数据表 错误 2.信息删除时候没处理完整 索引表数据没有被删...

SEO公司排名
 
QQ在线咨询
SEM竞价推广
137-1296-7640
SEO优化外包
137-1296-7640