解决Emlog文章删除后ID不连续的方法教程-路羽博客-第1张图片

解决Emlog文章删除后ID不连续的方法教程

解决Emlog文章删除后ID不连续的方法教程-路羽博客-第2张图片

作者: 路羽

原创资源分享博客

解决Emlog文章删除后ID不连续的方法教程-路羽博客-第3张图片微信小程序

路羽博客 资源分享

       

前言

年初的时候可能因为搬了几次数据,导致实际文章只有五百多而文章ID已经到了一千多,其中的原因是在emlog在删除文章后或者误操作数据库之后ID就会断掉,现在只需要简单修改一下代码,后面新增文章的时候就会优先选择断掉的文章ID补回来。

 

解决Emlog文章删除后ID不连续的方法教程-路羽博客-第4张图片

修改步骤

1.到路径下的include/model/log_model.php文件,将原始代码如下:

emlogpro会有点不同可以延续使用)

/**
* 添加文章、页面
*
* @param array $logData
* @return int
*/
function addlog($logData) {
    $kItem = array();
    $dItem = array();
    foreach ($logData as $key => $data) {
        $kItem[] = $key;
        $dItem[] = $data;
    }
    $field = implode(',', $kItem);
    $values = "'" . implode("','", $dItem) . "'";
    $this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)");
    $logid = $this->db->insert_id();
    return $logid;
}

2.修改为

/**
    * 添加文章、页面
    *
    * @param array $logData
    * @return int
    */
    function addlog($logData) {
        $kItem = array();
        $dItem = array();
        foreach ($logData as $key => $data) {
            $kItem[] = $key;
            $dItem[] = $data;
        }
        $field = implode(',', $kItem);
        $values = "'" . implode("','", $dItem) . "'";
        $gidarr[0]='0';
        $res = $this->db->query("SELECT gid From  " . DB_PREFIX . "blog ORDER BY gid ASC");
        while ($row = $this->db->fetch_array($res)) {
            $gidarr[] = $row['gid'];
        }
        foreach($gidarr as $key=>$val){
            if($key!=$val){
                $field = 'gid,'.$field;
                $values = "'".$key."',".$values;
                break;
            }
        }
        $this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)");
        $logid = $this->db->insert_id();
        return $logid;
    }

3.再次发布文章时断的号就会补过来了

分享到:
未经允许不得转载:

作者: 路羽, 转载或复制请以 超链接形式 并注明出处 路羽博客
原文地址: 《解决Emlog文章删除后ID不连续的方法教程》 发布于2022-11-23

评论

          
       
切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏