数字化技能提升教程,数字化时代生存宝典

数字化百科 / 词条 / CMSware数据库调用CMS SQL

CMSware数据库调用CMS SQL

查看全部词条命名空间:Main

导航:返回上一页


该调用标签可实现对数据库的直接查询调用.

本标签对应的系统调用函数为CMS_SQL()。

CMS_SQL调用支持page分页、支持使用“#TABLE_HEADER#” 符号替换表名、支持子查询。只支持当前数据库帐号能访问的数据库,要查询远程数据库,可以单独用mysql_connect创建一个远程连接,再进行独立查询

属性

必需

默认值

描述



query 是 - 数据库查询语句 例如query=“SELECT * FROM cmsware_site”
Num 否 - 调用条数
  • Num="": 基于SQL语句
  • Num="10,20": 从第10条以后(11条)开始调用,共20条记录
  • Num="page-15":分页调用,每页15条
  • Num="20":调用用20条
注意:当你使用Num参数时,不要再在query的sql语句中使用Limit 语法。
Tpl 否 - 指定调用的子模版
  • Tpl="list_style_1.html": 调用子模版“list_style_1.html”

Cache 否 - 模版中的CMS调用通过使用Cache,可以大幅提升批量更新的效率. 该标签只有门户版可用
  • Cache="1": 特别注意,只有模版公共调用的部分使用Cache 才有效果,比如内容页头部的导航NODELIST调用,或者top10之类的调用,结点首页的page-10分页调用最好不要用Cache, 因为不会提升任何效率.

returnKey 否 - 可以定义内容列表记录返回那些字段,一般列表只需要获得Title即可,而无需返回Content 等字段,使用此属性,可以一定程度上提高更新效能。 该标签只有门户版可用
  • returnKey="Title,Keywords":返回标题和关键词字段

键名

类型

描述


返回2维数组($List),该数组的组成基于查询语句的返回字段,如果查询语句包含NodeID的返回字段,List数组会自动附加以下键值
NodeInfo array 结点信息数组,具体组成参见{cmsware}/sysdata/sysinfo /node000x.php
NodeName string 结点名称
NodeURL string 结点首页URL

例子 1:结点数据库调用

调用代码:



[$var.Name]


例子 2:复杂分页调用

调用代码:




[$var.Title]

[@list_page( $PageInfo.TotalPage, $PageInfo.CurrentPage, $PageInfo.URL)]

例子 3:调用discuz公告和新贴

  • 调用公告:


[@CsubStr($var.subject,0,15,"")]

为取公告标题的前15个字符,并且后面不加 "..."

若论坛和思维(CMSware)安装在同一数据库,则上述语句为:




Num="4" 指定调用的条数为4条

[$BBS_URL]:你在模版变量管理设置的论坛路径。在模版变量管理将这个变量的值改为您的论坛路径即可

  • 调用ID为1的论坛新贴:


  • @date("Y-m-d", $var.PublishDate) [$var.title]
    • 调用所有的论坛新贴:
    
    
    
  • @date("Y-m-d", $var.PublishDate) [$var.title]
  • [$BBS_URL]:你在模版变量管理设置的论坛路径。在模版变量管理将这个变量的值改为您的论坛路径即可




    DATABASE为discuz安装的数据库、换成你自己的(默认为 cdb),TABLEPRE为表前缀、换成你自己的(默认为cdb)。

    例子 4:调用VBB论坛新帖子和公告

    • 调用VBB论坛新帖子:
    
    
    
  • [@CsubStr($var.title,0,15,"")]
    • 调用VBB论坛公告:
    
    
    

    [@CsubStr($var.title,0,15,"")]

    说明:

    "select announcementid,title from newvbbcore.vbb_announcement order by announcementid DESC"--“newvbbcore.”为VBB安装数据库,和思维(CMSware)在同一数据库时此处留空;“vbb_”为数据表前缀,没有前缀时留空;

    "[$BBS_URL]announcement.php?a=[$var.announcementid]&f=3" ,特别注意这里“f=3”的3为版块号,调用公告时必须指定一个版块号

    例子 5:统计编辑工作量

    调用代码:

    统计日期[$Custom1] 到 [$Custom2] 的稿件数量







    模型号:[$vartable]



    人员ID号,稿件数量


    [$var.userid] , [$var.nums]



    用动态发布实现,传入URL参数按顺序分别为:此模版绑定的文章IndexID,0,开始日期,结束日期 (注意:统计日期条件是前等后不等)

    (示例:http://cmsware/publish/content.php/231,0,2006-01-31,2006-06-02.html)

    如果是iis,由于不支持pathinfo传递参数,请用下面这种形式

    (示例:http://cmsware/publish/content.php?IndexID=231& Page=0,2006-01-31,2006-06-02.html)

    参考来源

    category:CMSware