中药方大全小图标
您当前的位置:首页 > 其他 > 网站日记

帝国cms批量添加tags的函数改良

提示: 阅读权限:公开  来源:jiuhecai  作者:jiuhecai

前文见---帝国cms7.2后台信息列表页批量添加tags

 http://www.zhongyf.com/qita/rj/2015-02-19/91911.html

对于其中的主要函数,jiuhecai做了改进,使得逻辑清晰,执行效率更高。

尤其是其中针对mysql的操作jiuhecai使用了比较少用但是高效的mysql函数,值得收藏学习。

function eInsertTags2($tags,$classid,$idr,$newstime){   
    global $empire,$dbtbpre,$class_r; 
	//参数检查
    $tagname = RepPostVar($tags); 
    if(!trim($tagname))printerror("TAGS信息不能为空", "", 1, 0, 1);
	$tag = explode(",", $tagname);   
    if(count($tag)>1)printerror("只能添加一个TAGS词", "", 1, 0, 1);  
    $count = count($idr); //统计ID数量   
    if(empty($count))printerror("未选择信息ID", "", 1, 0, 1);
    
    $classid=(int)$classid;   
    $mid=(int)$class_r[$classid][modid]; //获取模型id
    $tbname=$class_r[$classid][tbname];//获取表名
    //获取tagid
    $tagid=(int)$empire->gettotal("select tagid as total from {$dbtbpre}enewstags 
                                    where tagname='$tagname'");
    if($tagid==0){ //新增tag
        $empire->query("insert into {$dbtbpre}enewstags(tagname,num,isgood,cid) 
                                                values('$tagname',1,0,0);");   
        $tagid=$empire->lastid();     
    }else{ //已经存在的tag,过滤掉已经添加过的
        $ids=join(',',$idr);
        $allids=$empire->gettotal("select group_concat(id) as total 
                                    from {$dbtbpre}enewstagsdata 
                                    where
                                        tagid='$tagid'and id in($ids) and mid='$mid' ");
        $allidr=explode(',',$allids);
        $idr=array_diff($idr,$allidr);
        if(empty($idr))printerror("已经有了,无需重复添加", "", 1, 0, 1);
    }
    //开始正经干活
    foreach($idr as $id){
        //获得副表名称
         $jhcr = $empire->fetch1("select classid,stb,newstime from {$dbtbpre}ecms_".$tbname." 
                            where id='$id' limit 1");
        //更新副表
        $ftbname=$dbtbpre."ecms_".$tbname."_data_".$jhcr['stb'];
        $empire->query("update $ftbname set 
                        infotags=trim(BOTH ',' from concat(infotags,',','$tagname')) 
                        where id='$id'");   
        //更新tags数据表
         $empire->query("insert into {$dbtbpre}enewstagsdata(tagid,classid,id,newstime,mid)
                            values('$tagid','$jhcr[classid]','$id','$jhcr[newstime]','$mid')"); 
    }
    //更新tags主表
    $empire->query("update {$dbtbpre}enewstags set num=num+".count($idr)."
                     where tagid='$tagid'");   
    printerror("批量添加TAGS成功", "", 1, 0, 1);   
}


tags: 帝国cms tags 批量 帝国
返回顶部
推荐资讯
视频:田纪钧讲关节不痛的秘密、膝关节拉筋法
视频:田纪钧讲关节不
白露到了,你还好吗?
白露到了,你还好吗?
尿疗与断食
尿疗与断食
给风疹反复发作女孩的药方(组图)
给风疹反复发作女孩的
相关文章
栏目更新
栏目热门
  1. 帝国cms全站搜索的分页格式如何修改-流程
  2. libreoffice7的命令大全
  3. 帝国cms插件之标题生成标题图片
  4. 帝国cms插件安装模板
  5. useragent两千条,爬虫专用
  6. 帝国cms插件如何兼容gbk和utf8
  7. 帝国cms插件之迅搜
  8. 帝国cms用户上传文件名的命名规则及修改方
  9. 帝国cms7.2函数大全
  10. 帝国cms代码片段备忘录