【phpcms-v9】常见的数据调用【列表循环】方法
1、列表循环序列号自增标签代码
{pc:content action=”position”posid=”1″num=”3″thumb=”1″} {php $i=0;} {loop $data $v} {$i} {php $i++} {/loop} {/pc}
从0开始输出
{pc:content action=”position”posid=”1″num=”3″thumb=”1″} {loop $data $k $v} {$n} {/loop} {/pc}
2、栏目列表 从N条开始选择性调用数据方法
问题场景如下:栏目第一条调用缩略图、文章简介,从第二条开始才是标题列表:
上图可以看出,一条数据是带有缩略图和简介,而第二条才是是标题列表,这样会导致同项目中显示内容重复。为了避免这种情况发生,我们可以通过order里的LIMIT指明从第N条开始调用数据。
解决办法:
{pc:content action=”lists” catid=”10″?order=”id DESC LIMIT 1,4–“?num=”4″} <ul class=”list lh24 f14″> {loop $data $r} <li><span class=”rt”>{date(‘Y-m-d H:i:s’,$r[inputtime])}</span>·<a href=http://www.cmsyou.com/support/”{$r[url]}” target=”_blank”{title_style($r[style])}>{$r[title]}</a></li> {if $n%5==0}<li class=”bk20 hr”></li>{/if} {/loop} </ul> {/pc}
这个代码是从第2条开始调用数据,一共调用4篇文章。
其中order=”id DESC LIMIT 1,4–“里的两个数字,第1个数字1表示从第2条开始调用,第2个数字4表示共调用4条。
如果改成order=”id DESC LIMIT 0,4–“那么就表示从第1条开始调用,共调用4条。如果改成order=”id DESC LIMIT 2,4–“那么就表示从第3条开始调用,共调用4条。
3、SQL查询去掉重复的查询数据方法(distinct)
{pc:get sql=”SELECT distinct?attr_value FROM sp_works_attr WHERE attr_id=1 ORDER BY goods_id DESC” num=”30″ return=”data”} {loop $data $r} <a href=”shop/works.php?act=list&cat_id=1&price_min=0&price_max=0&filter_attr={$r[‘goods_attr_id’]}.0.0″>{$r[‘attr_value’]}</a> {/loop} {/pc}
SQL查询去掉重复的查询数据方法(distinct):
SELECT distinct 列名称 FROM 表名称 WHERE 。。。。。。。。。