一、作用
通过sql语句来循环查询数据(也可以单条查询),支持分页输出
二、语法{sql sql='SQL语句变量'....}{/sql}
三、参数参数介绍
sqlsql参数只支持变量传递,@#表示数据表前缀;格式如:sql='$sql',这里的$sql变量就是你的sql语句
site站点id,默认当前站点,填写其他站点id表示查询其他站点的SQL数据
page当page=1时表示开启分页查询,否则pagesize与urlrule是不会生效的
pagesize分页显示数据量
urlrule分页地址规则:[page]表示分页标识符
cache缓存时间单位秒,默认关闭缓存;
return默认返回变量为t,调用方式就是{$t.字段值}(多级查询必须设置return=其他字母,只能作为最后一个参数使用)
四、返回变量变量参数
{$debug}当查询不到数据时,会返回错误信息,调试模板时很有用哦(写在循环标签以外)
{$total}用于分页时查询的总记录数量(写在循环标签以外)
{$return}当前查询的结果集数组
{$count}当前查询的记录,当存在分页时,表示当前页的记录数(写在循环标签以外)
{$pages}显示分页代码(写在循环标签以外)
{$key}当前记录指针位置,从0开始(写在循环标签以内)
当存在return=字母时,以上变量都要写成这种格式{$变量_字母},例如{list ...reutrn=a}时,变量格式{$key_a}
{$is_first}判断是否第一条,{if $is_first}第一条{/if}
{$is_last}判断是否最后一条,{if $is_last}最后一条{/if}
五、显示字段
{$t.字段名称}或者{$t['字段名称']}
由于是SQL自定义查询,结果不会被格式化
六、相关例子(注意引号的用法,sql语句必须存在于单引号之间,不能出现多个引号和嵌套引号)
1、在member表中查询username=admin的会员信息{php $query=urlencode('select * from @#member where username="admin"');}
{sql sql='$query'}
{$t.username}
{/sql}
{$debug}
2、分页查询文章news表的数据{sql sql='select * from @#1_news' page=1 pagesize=10 urlrule=index.php?page=[page]}
{$t.title}
{/sql}
{$pages}
{$debug}
或者{php $query=urlencode('select * from @#1_news');}
{sql sql='$query' page=1 pagesize=10 urlrule=index.php?page=[page]}
{$t.title}
{/sql}
{$pages}
{$debug}
3、不能出现多个引号和嵌套引号,例如sql='SELECT * FROM dr_1_share_category WHERE name LIKE '%关键词%' '
这种是不允许的,应该写成这样{php $query=urlencode('SELECT * FROM dr_1_share_category WHERE name LIKE '%关键词%'');}
{sql sql='$query' *********}