Dedecms 模板中心

您现在的位置: 首页 > 教程文档 > 常见问题 >

织梦dedecms联动类别-地区调用不显示第三级城市的原因

来源:未知 发布时间:2017-11-23热度:
织梦联动类别-地区调用不显示第三级城市的原因 原因: 1.附加表addoninfos中的字段nativeplace类型为int型,无法保存第三级城市对应的的evalue值(比如: 东山区对应的10001.001) 2. 表sys_enum中的第三级城市对应evalue值错误(比如:东山区 10001.1 应该为...

织梦联动类别-地区调用不显示第三级城市的原因

原因:
1.附加表addoninfos中的字段nativeplace类型为int型,无法保存第三级城市对应的的evalue值(比如: 东山区  对应的  10001.001)
2. 表sys_enum中的第三级城市对应evalue值错误(比如:东山区 10001.1 应该为 东山区 10001.001)

解决方法:
1.修改该字段类型为char型:
后台 SQL运行工具里执行下面的语句
alter table `addoninfos` modify column nativeplace char(20);

2.修改表sys_enum所有第三级城市对应的 evalue值
----------------代码-------------------------------------------------------------------
<?php
require_once(dirname(__FILE__)."/../include/common.inc.php");
$dsql->SetQuery("select id,evalue from `sys_enum` where egroup='nativeplace'");
$dsql->Execute();
while($row = $dsql->GetArray())
{
    $res[]= $row;
}
$r = 0;
foreach ($res as $k=>$v)
{
    if (preg_match("#([0-9]{1,})\.([0-9]{1,})#", $v['evalue'], $matchs))
    {
        $valKey = $matchs[1] + $matchs[2] / 1000;
        $v['evalue'] = $valKey;
        $sql ="update `sys_enum` set evalue=".$v['evalue'] ." where id=".$v['id'];
        $r += $dsql->ExecuteNoneQuery2($sql);
    }
}
echo "sql执行成功 修改了".$r."条记录";
?>
-----------------------------------------------------------------------------------------------------------------
新建一个.php文件,复制以上代码在网站目录下执行即可

3.修改成功后,在后台 联动类别管理 中 更新一下缓存

    责任编辑:好织梦