一、get 標籤概述
通俗來講,get 標籤是Phpcms定義的能直接調用數據庫裏面內容的簡單化、友好化代碼,她可調用本系統和外部數據,只有你對SQL有一定的瞭解,她就是你的絕世好劍!也就是適合熟悉SQL語句的人使用。有了她,我們打造個性化的網站,能非常方便的調用出數據庫裏面指定的內容。通過條件限制,我們可以調用出不同條件下的不同數據。
二、get標籤樣式
{get dbsource=" " sql=" "}{/get}
三、get 標籤語法
1.get標籤屬性值必須用雙引號括起來( " " )。
例如:
{get sql=" " /}
2.get標籤必須含有結束標記,即正確get標籤必須是成對出現:整個Get標籤含有結束標記“ {/get}”,或者是“/”。
3.get標籤裏面含有的變量,數組和函數必須用“{}”包括。
例如:
{str_cut($r[title], 50)}
{$r[url]}
4.get標籤 sql語句中條數限制。( rows=" " )
例如:顯示10條信息
{get sql=" " rows="10"}
{/get}
5.get標籤 sql語句中條件限制。( where )
例如:調用欄目ID爲1的信息
{get sql="select * from phpcms_content where catid=1"}
標題:{$r[title]} URL:{$r[url]}
{/get}
6.get標籤 sql語句中排序。( order by )
例如:按更新日期降序(desc)排列
{get sql="select * from phpcms_content order by updatetime desc" }
{$r[title} URL:{$r[url]}
{/get}
7.get標籤裏面嵌套php函數。(可以參考上面的第3點)
例如:格式化輸出時間戳
{date('Y-m-d', $r[updatetime])}
8.本系統數據調用(當前數據庫調用)
{get sql=""}
{/get}
或者
{get sql="" return="r"}
{/get}
9.本系統數據調用10條
{get sql="" rows="10"}
{/get}
10.同一個數據庫帳號的不同數據庫調用
{get dbname="" sql="" }
{/get}
10.同一個數據庫帳號的不同數據庫調用
{get dbname="" sql="" }
{/get}
11.不同數據庫帳號調用(不同數據源調用)
{get dbsource="" sql=""}
{/get}
12.不同數據庫帳號的不同數據庫調用
{get dbsource="" dbname="" sql="" }
{/get}
13.本系統數據調用,帶分頁
14.本系統數據調用,自定義返回變量
{get sql=" " return="v"}
{$v[ ]}
{/get}
*get 標籤參數完整剖析
{get dbsource="數據源" dbname="數據庫" sql="SQL語句" rows="行數" return="返回變量名稱" page="$page"}
輸出代碼(含返回變量值、數組、函數等)
{/get}
dbname="數據庫" -->
(數據庫 在添加數據源的時候需要填寫的數據庫名)
注:本系統調用(同一數據庫賬號,同一數據庫名)可以省略
sql="SQL語句" -->
SQL語句可以參考Mysql手冊,上面get 標籤語法第4、5、6點和SQL語句剖析已經提及要點
注:此參數不可以省略
rows="行數" -->
行數,例如顯示10條信息:rows="10"
注:此參數可以省略
return="返回變量名稱" -->
參考get 標籤語法第8點和第14點
注:此參數可以省略
{get sql=" " page="$page"}
{/get}
分頁:{$pages}
page="$page" -->
帶分頁
注:此參數可以省略
*SQL語句剖析
sql="select 字段 from 表名 where 條件表達式 order by 字段 desc/asc"
6條完整get 標籤代碼示例
1.調用本系統單條數據,示例(調用ID爲1的信息,標題長度不超過25個漢字,顯示更新日期):
{get sql="select * from phpcms_content where contentid=1" /}
標題:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])}
2.調用本系統多條數據,示例(調用欄目ID爲1通過審覈的10條信息,標題長度不超過25個漢字,顯示更新日期):
{get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc" rows="10"}
標題:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])}
{/get}
3.帶分頁,示例(調用欄目ID爲1通過審覈的10條信息,標題長度不超過25個漢字,顯示更新日期,帶分頁):
{get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc" rows="10" page="$page"}
標題:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])}
{/get}
分頁:{$pages}
4.自定義返回變量,示例(調用欄目ID爲1通過審覈的10條信息,標題長度不超過25個漢字,顯示更新日期,返回變量爲 $v):
{get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc" rows="10" return="v"}
標題:{str_cut($v[title], 50)} URL:{$v[url]} 更新日期:{date('Y-m-d', $v[updatetime])}
{/get}
5.調用同一帳號下的其他數據庫,示例(調用數據庫爲bbs,分類ID爲1的10個最新主題,主題長度不超過25個漢字,顯示更新日期):
{get dbname="bbs" sql="select * from cdb_threads where fid=1 order by dateline desc" rows="10"}
主題:{str_cut($r[subject], 50)} URL:http://bbs.phpcms.cn/viewthread.php?tid={$r[tid]} 更新日期:{date('Y-m-d', $r[dateline])}
{/get}
6.調用外部數據,示例(調用數據源爲bbs,分類ID爲1的10個最新主題,主題長度不超過25個漢字,顯示更新日期):
{get dbsource="bbs" sql="select * from cdb_threads where fid=1 order by dateline desc" rows="10"}
主題:{str_cut($r[subject], 50)} URL:http://bbs.phpcms.cn/viewthread.php?tid={$r[tid]} 更新日期:{date('Y-m-d', $r[dateline])}
{/get}
四、get 標籤創建工具
1、獲取get 標籤代碼
例如,剛纔我們數據源選擇“本系統”,數據表選擇“內容模型”,字段名我們顯示“ID、標題、摘要、鏈接地址、發佈時間”,條件選擇ID=1,排序按ID降序排序,勾選“是否分頁”,每頁顯示條數設置爲“10條”,然後點擊“插入”
我們就可以得到系統自動生成的get 標籤代碼,如下:
{get sql="SELECT `contentid`,`title`,`description`,`url`,`inputtime` FROM `phpcms_content` WHERE `contentid` = '1' ORDER BY `contentid` DESC"rows="10" page="$page" }
{$r[contentid]}
{$r[title]}
{$r[description]}
{$r[url]}
{$r[inputtime]}
{/get}
{$pages}
分析如下:
{get sql="SELECT `contentid`,`title`,`description`,`url`,`inputtime` FROM ` phpcms_content`" WHERE `contentid` = '1' ORDER BY `contentid` DESC rows="10" page="$page" }
//條件是ID=1,排序按ID降序排序,顯示10行,帶分頁
{$r[contentid]}
// ID
{$r[title]}
//標題
{$r[description]}
//摘要
{$r[url]}
//鏈接地址
{$r[inputtime]}
//發佈時間
{/get}
{$pages}
//分頁
2、將代碼插入到模板文件
get 標籤代碼如下:
{get dbsource="discuz" sql="SELECT `author`,`subject`,`lastpost` FROM `cdb_threads` ORDER BY `lastpost` DESC" rows="3" }
{$r[author]}
{$r[subject]}
{$r[lastpost]}
{/get}