DedeCMS v5.7的loop標簽非常有用,可以使用它來調用任意表中的數據,我們先來看看loop標簽的語法結構。
{dede:loop table='table_name' if='condition' sort='field_name' row='line_number'}
<a href='[field:arcurl/]'>[field:title/]</a><br />
{/dede:loop}
上面就是loop標簽的語法了,其中table_name指的是表名,也就是要查詢的數據所在的表;condition是條件,相當于SQL語句中的where;field_name指的是排序方式,相當于SQL語句中的order by;line_number是行數,指要查詢多少條數據,我們通過兩個例子來說明loop標簽的強大功能。
{dede:loop table='dede_archives' sort='mid' row='4' if='mid=1'}
<a href='[field:arcurl/]'>[field:title/]</a>([field:mid/])<br />
{/dede:loop}
上面的例子是調用DedeCMS文檔主表的文章,根據mid也即會員ID號排序,條件是會員ID等于1。換句話說,這段代碼的作用是查詢會員ID為1的用戶發布的4篇文檔。
站長們也許會問為什么loop標簽叫萬能調用標簽呢?其實它除了調用DedeCMS數據表里面的內容外,還可以調用其他程序數據表中的數據,從而起到整合數據的作用。
{dede:loop table='cdb_threads' if='' sort='tid' row='8'}
<a href="http://www.inteqnet.com/php-[field:tid/]-1-1.html">
[field:subject function="cn_substr('@me',40)"/]
</a><br />
{/dede:loop}
上述代碼的功能和第一個例子類似,它用來獲取Discuz! 論壇的最新主題帖子,URL標簽中的域名要替換成自己的域名,各位站長可以試驗下。
dedecms loop和sql標簽多表查詢對比
loop多表查詢
{dede:loop table='dede_category_brand b,dede_goods g,dede_category_series s' row='8' if='b.cat_id=g.cat_brand_id and g.cat_series_id=s.series_name and g.cat_id=72'}
[field:cat_name/]
[field:series_name/]
[field:goods_model/]
[field:shop_price/]
{/dede:loop}
sql多表查詢
{dede:sql sql='select * from dede_category_brand b,dede_goods g,dede_category_series s where b.cat_id=g.cat_brand_id and g.cat_series_id=s.series_name and g.cat_id=71 limit 0,8'}
[field:cat_name/]
[field:series_name/]
[field:goods_model/]
[field:shop_price/]
{/dede:sql}
使用起來非常的方便!
{dede:loop table='table_name' if='condition' sort='field_name' row='line_number'}
<a href='[field:arcurl/]'>[field:title/]</a><br />
{/dede:loop}
上面就是loop標簽的語法了,其中table_name指的是表名,也就是要查詢的數據所在的表;condition是條件,相當于SQL語句中的where;field_name指的是排序方式,相當于SQL語句中的order by;line_number是行數,指要查詢多少條數據,我們通過兩個例子來說明loop標簽的強大功能。
{dede:loop table='dede_archives' sort='mid' row='4' if='mid=1'}
<a href='[field:arcurl/]'>[field:title/]</a>([field:mid/])<br />
{/dede:loop}
上面的例子是調用DedeCMS文檔主表的文章,根據mid也即會員ID號排序,條件是會員ID等于1。換句話說,這段代碼的作用是查詢會員ID為1的用戶發布的4篇文檔。
站長們也許會問為什么loop標簽叫萬能調用標簽呢?其實它除了調用DedeCMS數據表里面的內容外,還可以調用其他程序數據表中的數據,從而起到整合數據的作用。
{dede:loop table='cdb_threads' if='' sort='tid' row='8'}
<a href="http://www.inteqnet.com/php-[field:tid/]-1-1.html">
[field:subject function="cn_substr('@me',40)"/]
</a><br />
{/dede:loop}
上述代碼的功能和第一個例子類似,它用來獲取Discuz! 論壇的最新主題帖子,URL標簽中的域名要替換成自己的域名,各位站長可以試驗下。
dedecms loop和sql標簽多表查詢對比
loop多表查詢
{dede:loop table='dede_category_brand b,dede_goods g,dede_category_series s' row='8' if='b.cat_id=g.cat_brand_id and g.cat_series_id=s.series_name and g.cat_id=72'}
[field:cat_name/]
[field:series_name/]
[field:goods_model/]
[field:shop_price/]
{/dede:loop}
sql多表查詢
{dede:sql sql='select * from dede_category_brand b,dede_goods g,dede_category_series s where b.cat_id=g.cat_brand_id and g.cat_series_id=s.series_name and g.cat_id=71 limit 0,8'}
[field:cat_name/]
[field:series_name/]
[field:goods_model/]
[field:shop_price/]
{/dede:sql}
使用起來非常的方便!