Loop循环标签
Loop循环标签
Loop循环标签({soeay:loop})用于在模板中循环输出数据,支持SQL查询和数据表两种模式。
SQL查询模式
{soeay:loop sql="SELECT * FROM soeay_content WHERE status=1" num=10}
[soeay:title]
{/soeay:loop}
数据表模式
{soeay:loop table=soeay_content where="status=1" order=date dir=desc num=10}
[soeay:title]
{/soeay:loop}
属性说明
- sql:SQL查询语句(与table二选一)
- table:数据表名(与sql二选一)
- where:WHERE条件(table模式可用)
- order:排序字段
- dir:排序方向,asc/desc
- num:显示数量,默认 10
可用变量
- [soeay:i] / [soeay:num]:当前循环序号(从 1 开始)
- [soeay:字段名]:查询结果中的任意字段,如 [soeay:title]、[soeay:date]
使用场景
Loop 循环标签适合在模板中执行一些简单查询,例如读取特定条件的内容、最近更新的数据、或自定义 SQL 查询结果。它是 {soeay:list} 标签的补充,适合一次性、临时性的数据调用。
注意事项
- 安全限制:
sql模式仅允许 SELECT/SHOW/PRAGMA 查询,系统会自动拒绝 INSERT/UPDATE/DELETE/DROP/ALTER/CREATE 等危险语句。 - table 模式:仅允许查询
soeay_content、soeay_content_sort、soeay_slide、soeay_link、soeay_tags、soeay_comment等白名单表。 - where 条件:系统会对 where 字符串做危险关键字过滤,但建议 still 避免使用用户传入的参数。
- 循环变量:可用
[soeay:字段名]访问查询结果字段,以及[soeay:i]/[soeay:num]循环序号。注意不存在[soeay:total]变量。 - 性能:每个 Loop 标签都会触发一次数据库查询,不要在同一个页面中大量使用,以免影响性能。
