Emlog文章gid断号修复教程

Emlog文章连接使用gid自增号作为文章的ID,但是由于后台有删除文章的功能,一旦删除文章那么gid自增就会出现断号,在Zblog有文章ID连续的插件,而Emlog没有,所以就需要手动修改,使得删除文章断掉的ID可以自动增补。

其实断号问题解决很方便,只要在添加文章的时候判断gid之前的有没有断号问题,有的话直接插入,没有的话自增。

我这里的解决方法是这样的,我把gid自增段顺序读取作为值写入数组,自增段是从1开始的,但是数组键值是0开始的,那么先把数组($gidarr[0]='0')赋值掉,然后把$gidarr[]=gid,然后只要发现$gidarr键和键值不等就是断号了。

首先,找到我们的addlog添加文章和页面函数。路径在include/model/log_model.php中的
  1. /**
  2. * 添加文章、页面
  3. *
  4. * @param array $logData
  5. * @return int
  6. */
  7. function addlog($logData) {
  8. $kItem = array();
  9. $dItem = array();
  10. foreach ($logData as $key => $data) {
  11. $kItem[] = $key;
  12. $dItem[] = $data;
  13. }
  14. $field = implode(',', $kItem);
  15. $values = "'" . implode("','", $dItem) . "'";
  16. $this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)");
  17. $logid = $this->db->insert_id();
  18. return $logid;
  19. }
修改为以下代码:
  1. function addlog($logData) {
  2. $kItem = array();
  3. $dItem = array();
  4. foreach ($logData as $key => $data) {
  5. $kItem[] = $key;
  6. $dItem[] = $data;
  7. }
  8. $field = implode(',', $kItem);
  9. $values = "'" . implode("','", $dItem) . "'";
  10. $gidarr[0]='0';
  11. $res = $this->db->query("SELECT gid From " . DB_PREFIX . "blog ORDER BY gid ASC");
  12. while ($row = $this->db->fetch_array($res)) {
  13. $gidarr[] = $row['gid'];
  14. }
  15. foreach($gidarr as $key=>$val){
  16. if($key!=$val){
  17. $field = 'gid,'.$field;
  18. $values = "'".$key."',".$values;
  19. break;
  20. }
  21. }
  22. $this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)");
  23. $logid = $this->db->insert_id();
  24. return $logid;
  25. }

好了,gid断号问题修复了,通过改变是否需要插入语句添加gid和gid值,来自增或者插入。 假如你有多篇文章删除,添加一篇的话,只有从开始的断号,慢慢补全断号!
版权声明:若无特殊注明,本文为《笔名》原创,转载请保留文章出处。
本文链接:https://1520.me/29.html
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽

评论信息框
可使用QQ号实时获取昵称+头像

私密评论

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!