zblog php文章删除后重新从1排序文章ID方法

刚才在给一个站找模板的时候看上了卢松松2019最新版模板,可惜卢松松现在已经不分享zblog模板了。所以我只好自己找了,不过找到的大多数都是别人仿的,而且要收费,本着不花钱就是赚钱的原则,我还是自己慢慢找吧。终于,皇天不负苦心人,让我找到了一款免费的2019最新卢松松模板。不过这个主题好像是有绕过授权还是什么原因,不能只在自己的博客安装主题,必须要全站迁移才可以。

安装完成本地测试感觉整体还不错,凑合能弄,不过源码自带了很多数据,这些对于我们来说没有一点用处,顺手就删掉了,结果删掉文章后再测试发表自己的文章,文章id就从13开始了,而且首页显示只有一篇文章就有2页,这可算是个大问题。

在zblog论坛找了半天也没有找到方法,然后又去phpmyadmin看看有没有解决办法,关于文章的表是zbp_post,打开这张表可以看到log_ID,当我看到额外后面的AUTO_INCREMENT才意识到,想要解决这个问题跟zblog程序关系不大,主要问题是要解决mysql数据库的问题。

既然这个log_ID是一个自增长的值,那一定有办法让它重新排序,发现在zblog后台删除文章属于delete操作,不会清空标识。而truncate会删除标识,也就是我想要达到的效果。

truncate table 不仅是删除表里面的数据,而且还会清空表里面主键的标识。也就是说使用过truncate table 的表在重新写入数据的时候,标识符会从0或1重新开始(看你设置的种子号)。
delete * from就是仅仅能删除数据,不能清空标识。不过delete * from可以后面加Where truncate table却不能加Where。

最终方法:

进入phpmyadmin,找到当前的数据库打开zbp_post,使用TRUNCATE TABLE 表名方法清空标识

TRUNCATE TABLE zbp_post

这时再返回zblog后台发布文章测试一下,完美解决

同时这个方法也适用于分类等表