phpcms 更新栏目缓存 `PHP Has Encountered a Stack Overflow` 解决办法

phpcms网站后台更新栏目缓存后报错: PHP has encountered a Stack overflow 解决方法: 1、首先这个问题是出在数据库表上,所以登陆空间的 phpmyadmin 去管理数据库表 2、执行sql语句:SELECT * FROM v9_category WHERE catid=parentid (注意,v9_是表前缀,记得修改成自己的表前缀) 3、正常情况下这个搜索是查询不到记录的,如果查询到记录,说明该记录有问题 4、解决方法把该记录的:parentid的值修改为0即可 原因剖析: v9_category 表中存在,「分类id(catid)」 等于「父级分类id(parentid)」的记录,导致程序构造树形分类据时,出现了死循环,导致栈内存溢出。

2015-03-31 15:30:02 · 王二

PHPCMS全局循环调用二级类目导航

{pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"} <a href="{siteurl($siteid)}">首页</a> {loop $data $r}<!-- 一级栏目循环开始 --> <a href="{$r[url]}">{$r[catname]}</a> {if $r[arrchildid]} <!--是否有子栏目--> {pc:content action="category" catid="$r[catid]" num="15" siteid="$siteid" order="listorder ASC" return="data2"} {loop $data2 $v}<!--子栏目循环开始--> <a href="{$v[url]}">{$v[catname]}</a> {/loop}<!--子栏目循环结束--> {/pc} {/if} {/loop}<!-- 一级栏目循环结束--> {/pc}

2014-02-28 16:29:59 · 王二