新版phpcms v9但中使用GET标签的SQL调用几个注意点
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-19 22:09:54 浏览: 评论:0
今天在偶然使用到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> //phpfensi.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:缓存时间;
Tags: phpcms标签调用 get标签使用
- 上一篇:如何在mysql数据库中批量替换内容
- 下一篇:phpcms v9 更改后台排序问题
相关文章
- ·标签调用代码详解{str_cut($r[title], 40)} 文章标题,长度限制为40(2014-10-20)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)