当前位置:首页 » » Emlog gid自动补全断号id的方法

Emlog gid自动补全断号id的方法

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

    其实断号问题解决很方便,只要在添加文章的时候判断gid之前的有没有断号问题,有的话直接插入,没有的话自增。

    我这里的解决方法是这样的,我把gid自增段顺序读取作为值写入数组,自增段是从1开始的,但是数组键值是0开始的,那么先把数组($gidarr[0]='0')赋值掉,然后把$gidarr[]=gid,然后只要发现$gidarr键和键值不等就是断号了。

    找到我们的addlog添加文章和页面函数。路径在include/model/log_model.php中的

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

修改为:

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;
}

    通过改变是否需要插入语句添加gid和gid值,来自增或者插入。
假如你有多篇文章删除,添加一篇的话,只有从开始的断号,慢慢补全断号。

    舍力提醒你,在更改文件时请先做好备份。

End
温馨提示:如果您对本文有疑问,请在本页留言即可!!!
觉得很赞 (1)付款方式
X
付款方式:
  • 微信
  • 支付宝
  • QQ红包

使用微信扫一扫
blogger
    发布日期:2014-11-12   所属类别:   浏览:7735次   评论:1次
    本文地址:http://www.syom.cn/iemlog/514.html [ 百度已收录 ]
    声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!

留言/评论:◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

填写好QQ号码,任点空白处自动获取

昵称

邮箱

网址

1楼、哆啦爱梦~ [回复该留言]
2018-07-03 10:24
这么好的文章居然没人看吗,本人强迫症,之前都是自己修改数据库的gid值,学了博主的教程之后,轻松很多,转载博主文章了 地址 【网址屏蔽】

个人资料

舍力

博主:舍力

Emlog交流群

    用心做好每一件事!

博客统计

  • 文章数量:1136篇
  • 文章评论:3577条
  • 总访问量:10644957次
  • 微语数量:条
  • 在线人数:1人
  • 本站运行:11年8月16天
  • 估计博主很忙,已经很久没更新了!
Q2 虚位以待
Copyright © 2025 舍力博客 版权所有   粤ICP备11021420号
基于宝塔面板,数据存储于阿里云ECS
Powered by emlog / &Author 舍力博客.