解決Emlog文章刪除后ID不連續的方法教程

廣告也精彩

年初的時候可能搬了幾次數據,導致實際文章只有五百多而文章ID已經到了一千多,重要的原因emlog在刪除文章后或者誤操作數據庫之后ID就會斷掉,現在只需要簡單修改一下代碼,后面新增文章的時候就會優先選擇斷掉的文章ID。

修改步驟

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.再次發布文章時斷的號就會補過來了

? 版權聲明

相關文章

暫無評論

none
暫無評論...