Emlog gid 文章 ID 自增断号自动插入

Emlog 文章连接使用 gid 自增号作为文章的 ID,但是由于后台有删除文章的功能,一旦删除文章那么 gid 自增就会出现断号。

其实断号问题解决很方便,只要在添加文章的时候判断 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. /**
  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. }

通过改变是否需要插入语句添加 gid 和 gid 值,来自增或者插入。

假如你有多篇文章删除,添加一篇的话,只有从开始的断号,慢慢补全断号。

人已赞赏
文章资讯

有些的时候,正是为了爱才悄悄躲开。躲开的是身影,躲不开的却是那份默默的情怀。

2021-5-1 13:16:50

文章资讯

EMLOG自定义修改浏览量

2021-5-3 19:18:29

主机评测文章收集至网络,真实测评部分为本站原创,部分为商家自行投稿,原则上所有的商家都有可能跑路,请大家自行甄别,小心为上!如收集的文章使您的权利被侵害,请联系站长 QQ:302784768或 点击右侧 私信:Muze 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索