频道总排行调用方法
<div class="box">
<h5 class="title-2">频道总排行</h5>
{pc:get sql="select a.id,a.title,a.url,a.catid,b.hitsid,b.views from v9_news a left join v9_hits b on a.id=substring(b.hitsid,5) where a.catid in ($arrchildid) order by b.views desc" num="10" cache="3600"}
<ul class="content digg">
{loop $data $r}
<li> <a href="{$r[url]}" title="{$r[title]}" target="_blank">{str_cut($r[title],36,'...')}</a></li>
{/loop}
</ul>
{/pc}
</div>
频道月排行调用方法
<div class="box">
<h5 class="title-2">频道总排行</h5>
{pc:get sql="select a.id,a.title,a.url,a.catid,b.hitsid,b.views from v9_news a left join v9_hits b on a.id=substring(b.hitsid,5) where a.catid in ($arrchildid) order by b.views desc" num="10" cache="3600"}
<ul class="content digg">
{loop $data $r}
<li> <a href="{$r[url]}" title="{$r[title]}" target="_blank">{str_cut($r[title],36,'...')}</a></li>
{/loop}
</ul>
{/pc}
</div>
调用全站所有文章排行的方法:
<div class="idxTopApps contents">
<ul class="indexIcns">
{pc:get sql="SELECT a.id,a.url,a.thumb,a.status,b.hitsid,b.views FROM v9_download a, v9_hits b WHERE a.status=99 and a.id=substring(b.hitsid,5) ORDER BY b.views DESC" num="6"}
{loop $data $r}
<li><a href="{$r['url']}"><img src="{$r['thumb']}" /></a></li>
{/loop}
{/pc}
</ul>
</div>
可以看到“substring(b.hitsid,5)”是截取hitsid字段,从左往右数第5个字符串,即“c-2-5”从左往右数,1个“c”,1个“2”,2个“-”,第5个字符就是“5”,截取后只剩下了第2个“-”后的id,到达了最终提取id的目的。当然,其中我还加入了另一个条件“status=99”,这个表示已经审核通过的文章,这个可有可无。
转载于:https://blog.51cto.com/taoyouth/1722953