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. [email protected]$logData
  5. [email protected]
  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. [email protected]$logData
  5. [email protected]
  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 值,来自增或者插入。

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

给TA买糖
共{{data.count}}人
人已赞赏
文章资讯

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

2021-5-1 13:16:50

文章资讯

EMLOG自定义修改浏览量

2021-5-3 19:18:29

声明:1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。 2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。 3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。 4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
主机评测文章收集至网络,真实测评部分为本站原创,部分为商家自行投稿,原则上所有的商家都有可能跑路,请大家自行甄别,小心为上!如收集的文章使您的权利被侵害,请联系站长 QQ:302784768或 点击右侧 私信:Muze 反馈,我们将尽快处理。
搜索