dede5.7封面不显示副栏目 - 电脑技术中心 - 【漳州电脑网】_漳州电脑维修_漳州笔记本电脑维修_监控安装_市区上门维修

全国统一24小时服务热线:400-0000-000400-0000-000  / 1399000000

当前位置:首页 > 电脑技术中心 > 正文

dede5.7封面不显示副栏目

发布日期:2018-04-23

摘要:百度查了一下全是一样的,如果说让我明白一点的就是知道是在织梦5 7封面显示副栏目是在那个文件里修改了,也就这点用处。好了不说废话了,字太少百度不收录的。大家理解一下。上代码不解释:if($CrossI...

百度查了一下全是一样的,如果说让我明白一点的就是知道是在织梦5.7封面显示副栏目是在那个文件里修改了,也就这点用处。
好了不说废话了,字太少百度不收录的。大家理解一下。
上代码不解释:
if($CrossID=='')$orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).') or FIND_IN_SET('.GetSonIds($typeid).',arc.typeid2)';
else $orwheres[] = 'arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')or FIND_IN_SET('.GetSonIds($typeid).',arc.typeid2)';
此文件所在位置:
/include/taglib/arclist.lib.php
修改原代码:
if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')';
else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')';
以上是原代码修改成:
if($CrossID=='')$orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).') or FIND_IN_SET('.GetSonIds($typeid).',arc.typeid2)';
else $orwheres[] = 'arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')or FIND_IN_SET('.GetSonIds($typeid).',arc.typeid2)';
代码说明:
arc.typeid IN ('.GetSonIds($typeid).')查询dede_arctiny表中的typeid字段,如果是有.GetSonIds($typeid).的就查询并返回去。这里没有typeid2所以在这里就要加上or FIND_IN_SET('.GetSonIds($typeid).',arc.typeid2)'
意思就是查询typeid2字段中如果包含了.GetSonIds($typeid).此数字的话也返回。但是这样一设置封面的推荐什么的都不显示了,所以只能用模糊查询

说明:
mysql中如果用like模糊查询的话,也是可以的。不过可能不是很准。
代码如下:
if($CrossID=='')$orwheres[] = " (arc.typeid in (".GetSonIds($typeid).") or arc.typeid2 in(".GetSonIds($typeid).") or CONCAT( ',', arc.typeid2, ',' ) LIKE '%,".$typeid.",%' )";
else $orwheres[] = " (arc.typeid in (".GetSonIds($typeid).",".$CrossID.") or arc.typeid2 in (".GetSonIds($typeid).",".$CrossID.") or CONCAT( ',', arc.typeid2, ',' ) LIKE '%,".$typeid.",%')";
这个代码已经试过了,很好。

一般SQL是可以支持CHARINDEX函数的。不过可惜的是Mysql不支持这个函数所以只能用以上方法或者like模糊查询了。如果你有更好的方法的话。除外,我只知道这两种就先发出来了。

原创很不容易呀!如果你要转载的话就把连接一起转了,不浪费你时间滴,电脑互助网中的电脑维护原创,如果你需要转发请保留连接;

上一篇:无线连接时好时坏 无线数据接收为0

下一篇:BIOS中的HDD0 HDD1是什么意思