Jquery中文網 www.twdanq.live
Jquery中文網 >  建站教程  >  phpcms  >  正文 PHPCMS V9按瀏覽次數(月、周、總)排行GET標簽調用文章

PHPCMS V9按瀏覽次數(月、周、總)排行GET標簽調用文章

發布時間:2014-11-12   編輯:www.twdanq.live
本文介紹下,在phpcms v9中,按瀏覽次數(月、周、總)排行GET標簽調用文章的方法,感興趣的朋友參考學習下。

本節內容:
PHPCMS V9按瀏覽次數(月、周、總)排行GET標簽調用文章

  想在下載站點中實現下載排行,按照一般的邏輯,進入某欄目,顯示的是某欄目的下載排行,而在首頁呢,應該顯示的是全站所有軟件條目的下載排行。

  PHPCMS V9的標簽不支持重復調用多個欄目,例如我想顯示某兩個欄目的下載排行,V9就做不到了,而之前的2008版卻是可以支持的。令人費解,只能認為是新架構,還沒來得及完善了。

   瀏覽次數的表里面,與相關文章或下載內容關聯的是一個叫“hitsid”的字段,同時也是該表的主鍵。存儲的字段內容如“c-2-5”一 類的,而不是普通的整型數字,不能簡單的與文章表或者下載表里面的條目的“id”號直接關聯就得到相關的瀏覽次數,這個另類的“x-y-z”的方式令不少 SQL語句的生手望而生畏,包括本人。

  不過還好,這個“x-y-z”的格式是有規律可循的,于是乎,我查看了相關的文檔,想到了用字符 串的形式,因為我做的是下載站,“x-y-”這段字符串是固定的,就是“c-2-”,第一個“c”是什么不知道,第二個“2”應該是內容模型,“2”是下 載模型,“1”是文章模型,可以到模型管理里面查看id號。最后那個數字就是對應的文章表或下載表里的條目id了,所以,也不是沒有方法的,我想到的就是 在SQL語句里,將固定的“c-2-”和字段id合在一起,得到的就是諸如“c-2-5”一類的字符串,然后在用條件比對即可。
  限于本人水平有限,這個字符串加了半天,沒有能夠成功。另一個方法,就是使用SQL語句的“substring”。
先附上這位同學給出的方法:

頻道總排行調用方法:
 

復制代碼 代碼示例:
<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.monthviews desc" num="8" cache="3600"}
    <ul class="content rank">
        {loop $data $r}
        <li><span>{number_format($r[views])}</span><a href="{$r[url]}"{title_style($r[style])} class="title" title="{$r[title]}">{str_cut($r[title],56,'...')}</a></li>
        {/loop}
    </ul>
    {/pc}
</div>

我的代碼只用到前一個例子中的SQL語句中的substring方法。Substring是截取字符串的作用。

調用全站所有文章排行的方法:
 

復制代碼 代碼示例:
<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”,即審核通過的文章。

您可能感興趣的文章:
PHPCMS V9按瀏覽次數(月、周、總)排行GET標簽調用文章
GET標簽調用全站內容月排行
phpcms v9 GET標簽調用昨天、今天、本周、本月內容的mysql語句
phpcms v9 get的應用(列表頁調用點擊數)
phpcms V9 全站文章點擊排行榜的實現代碼
PHPCMS V9主站調用全站最新內容的方法
PHPCMS V9調用全站最新內容的方法
如何讓PHPCMS V9首頁無法只顯示推薦的友情鏈接
phpcms v9 自寫的limit調用標簽代碼
phpcms v9 get標簽調用自定義模型熱門內容

[關閉]
广西快乐10分怎样开奖号码