今天在偶然使用到phpcms v9中的get标签,发现如下的写法都失效了,最初,逐日者写的标签如下:
- {get sql="select * from zty_category where parentid=22 or parentid=23 or parentid=52 order by allclicks desc" rows="8"}
- ...{$r[catname]}...{$r[allclicks]}...
- {/get}
由于本人没有背记这些标签严格格式的习惯--!上网上一搜,前几页给出的大部分都是如上的格式,结果系统直接不解析,原文返回.
现在网上流传的很多phpcms的get标签的使用方法还是这种形式的,看来这样写已经不完全符合现在的版本了,后来进过查阅网上资料,有发现了在get前面加上pc标记的方式,如下:
- {pc:get sql="select * from zty_category where parentid=22 or parentid=23 or parentid=52 order by allclicks desc" rows="8"}
- ...{$r[catname]}...{$r[allclicks]}...
- {/pc}
这次系统解析了,但是不返回任何数据,这次‘逐日者’发飙了,直接到/caches/caches_template/...对应的模板缓存文件目录下找到了当前模板的缓存内容,找到对应此标签的解析内容如下:
- <ul>
- /</?php if(defined('IN_ADMIN') && !defined('HTML')) /{echo "<div class="admin_piao" pc_action="get" data="op=get&tag_md5=95dd821129f80e3f0caf981a9f215a90&sql=select+*+from+zty_category+where+parentid=22+or+parentid=23+or+parentid=52+order+by+allclicks+desc&rows=8"><a href="javascript:void(0)" class="admin_piao_edit">编辑</a& gt;";}pc_base::load_sys_class("get_model", "model", 0);$get_db = new get_model();$r = $get_db->sql_query("select * from zty_category where parentid=22 or parentid=23 or parentid=52 order by allclicks desc LIMIT 20");while(($s = $get_db->fetch_next()) != false) {$a[] = $s;}$data = $a;unset($a);/?/>
- <li><a href="<?php echo $r['url'];?>"><img src="<?php echo $r['image'];?>" width="130" height="170" alt="<?php echo $r['catname'];?>"/></a><a href="<?php echo $r['url'];?>"><?php echo $r['catname'];?>(<?php echo $r['allclicks'];?>clicks)</a></li>
- <?php if(defined('IN_ADMIN') && !defined('HTML')) {echo '</div>';}?>
- </ul> //Vevb.com
注意上面代码,由此可以看出,执行sql命令后返回的数据是存到了$data这个数组中去了,由此一切到明了了,这样我们应该用{loop}{/loop}标签将$data数组遍历一下,循环调用我们的需要的数据条,由此,正确的调用方式如下:
- {pc:get sql="select * from zty_category where parentid=22 or parentid=23 or parentid=52 order by allclicks desc" rows="8"} {loop $data $r}
- ...{$r[catname]}...({$r[allclicks]}clicks)...
- {/loop} {/pc}
后来逐日者找到了官方提供的phpcms v9 get标签的格式如下:
- {pc:get sql="SELECT * FROM phpcms_member" cache="3600" page="$page" dbsource="discuz" return="data"}
- <ul>
- {loop $data $key $val}
- {$val[username]}<br />
- {/loop}
- </ul>
- {$pages}
- {/pc}
dbsource:数据源;
return:返回数据到哪个变量;
page:是否有翻页;
cache:缓存时间;
新闻热点
疑难解答