EMLOG解决文章GID断号并自增断号ID的方法

  • 内容
  • 相关

6F59423A-74FC-40FD-BA71-29248ECA5F95.jpeg

使用EMLOG的站长想必都知道,由于EMLOG使用GID自增号作为文章ID,因此一旦删除文章就会断掉,那么有没有办法解决文章GID断号的问题呢?

实际上,对于EMLOG文章GID断号的问题解决起来并不难,只要在添加文章的时候进行简单的判断就可以了,判断当前GID之前有无断号问题,有断号就优先选择断号的文章ID,没有的话直接自增就可以了。

一、操作原理

将GID自增顺序读取作为值写入到数组中,自增段从1开始,但数组值从0开始,因此需要先将数组($gidarr[0]='0')赋值掉,然后把$gidarr[]=gid,只要发现$gidarr键和键值不等,就是存在断号的情况了。

二、操作方法

找到include/model/log_model.php文件,替换相关代码

1、原始代码

/**
* 添加文章、页面
*
* @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;

三、注意事项

1、使用本教程前,如果确认使用的是EMLOG 5.3.1版本且没有对源代码进行过修改,可以下载博客志改好的文件直接覆盖同名文件

文章来源:博客志

本文标签:

版权声明:若无特殊注明,本文皆为《彭Sir》原创,转载请保留文章出处。

本文链接:EMLOG解决文章GID断号并自增断号ID的方法 - http://blog.hkiii.cn/?post=65

收录状态:[坐等百度收录][等待360收录][搜狗已收录]

网站备案相关信息
域名 pengsirs.com
主办方名称 彭松
主办单位性质 个人
主体备案号 鄂ICP备19010459号
ICP备案号 鄂ICP备19010459号-1
首页地址 http://blog.hkiii.cn/ [备案查询]
网站名称 遇上更好的你
审核时间 2019/4/24 0:00:00