yu00yi 发表于 2012-4-18 10:50:49

DEDECMS模板中的数据库语句SQL的调用一

今天来说DEDECMS模板中的数据库语句SQL的调用
功能说明:用于从模板中用一个SQL查询获得其返回内容适用范围,全局使用
基本语法:{dede:sql sql=""}底层模板{/dede:sql}
参数说明:sql="" 完整的SQL查询语句
底层模板字段:SQL语句中查出的所有字段都可以用来调用
应用实例:
1.调用某个特定会员发布的文章内容:
{dede:sql sql='Select * from dede_archives where mid=1'}

{/dede:sql}
mid为用户ID ,可以参考二次开发中关于dede_archives的数据表字段介绍

首页调用文章正文内容,比较好的解决方法:
方法一:

{dede:sql sql="SELECT aid,typeid,body,body1,body2,body3,body4,body5 FROM `dede_addonarticle` where typeid=2 ORDER BY `aid` DESC LIMIT 0,1"}

{/dede:sql}

方法二:

{dede:sql sql="SELECT aid,typeid,body FROM `dede_addonarticle` where typeid=2 ORDER BY `aid` DESC LIMIT 0,1"}

{/dede:sql}
调用说明:
其中typeid=2,栏目ID号,表示调用此ID栏目内的文章,换成 aid=1 则表示调用的 aid 为 1 的文章,
DESC 表示排序,按从大到小排,换成 ASC 则按从小到大排序,
LIMIT 0,1 表示调用数量,也可以写成数量LIMIT 1,这个1代表调用的数量。
===============================================
SQL语句分为两类,功能型的和内容调用型,功能型的主要是对数据库进行常规的操作,例如{insert、update},数据调用型的操作就(select),两种类型的SQL语句使用发放也很简单,如果是功能型的只需要在系统后台[系统]-中进行使用,如果是模板标签的数据调用类型,只需要在模板相应位置添加标签即可。

功能型SQL语句整理:

功能说明:添加自定义属性
insert into `dede_arcatt`(sortid,att,attname) values(9,'d','评论');
alter table `dede_archives` modify `flag` set ('c','h','p','f','s','j','a','b','d') default NULL;

功能说明:批量为作者和来源赋值
UPDATE dede_archives SET writer='要赋的值' WHERE writer='';
UPDATE dede_archives SET source='要赋的值' WHERE source='';
功能说明:删除指定IP的评论
DELETE FROM `dede_feedback` WHERE `dede_feedback`.`ip` = '000.000.000.000'
000.000.000.000 为垃圾评论发布者的IP
功能说明:清空文章中关键字字段
update dede_archives set keywords=''

功能说明:批量替换发布时间,入库时间,更新时间

第一步。在后台新增一个文章。
得到一个时间,比如2011-06-20 14:13:32,这可以通过管理文章那里看到。

第二步,后台执行SQL语句SELECT * FROM dede_archives order by id DESC limit 1
这样你可以看到你刚才新加加的文章一所有字段值。
观察以下的数据:

pubdate:1234567891
senddate:1234567891
sortrank:1234567891

其中1231846313就是时间数据了。

然后就是替换了:
UPDATE dede_archives SET sortrank = 1234567891;
UPDATE dede_archives SET senddate = 1234567891;
UPDATE dede_archives SET pubdate = 1234567891;

功能说明:批量修改栏目为动态或者静态
UPDATE `dede_arctype` SET `isdefault` = '-1' 动态
UPDATE `dede_arctype` SET `isdefault` = '1' 静态
功能说明:文章内容批量替换SQL语句
                                    
         
update `dede_addonarticle` set body=REPLACE(body,'论坛','社区') where body like "%论坛%"
以上SQL语句作用是查找所有文章带有“论坛”的词组,并将论坛替换为“社区”

数据调用SQL语句整理:

标签说明:常用内容统计代码:

·共有文章:** 篇
{dede:sql sql="select count(*) as c from dede_archives where channel=1"}·共有文章:篇{/dede:sql}
·共有图集:** 个
{dede:sql sql="select count(*) as c from dede_archives where channel=2"}·共有图集:个{/dede:sql}
·共有软件:** 个
{dede:sql sql="select count(*) as c from dede_archives where channel=3"}·共有软件:个{/dede:sql}
·共有评论:**条
{dede:sql sql="select count(*) as c from dede_feedback"}·共有评论:条{/dede:sql}
·共有会员:**名
{dede:sql sql="select count(mid) as c from dede_member "}·共有会员:名{/dede:sql}
·文章阅读:** 人次
{dede:sql sql="select sum(click) as c from dede_archives"}文章阅读:人次{/dede:sql}
·今日更新:**篇
{dede:sql sql="SELECT count( * ) AS c FROM dede_archives WHERE pubdate > UNIX_TIMESTAMP( CURDATE( ) ) "}今日更新:篇{/dede:sql}
总共留言:{dede:sql sql="select count(*) as cc From dede_guestbook"}{/dede:sql}条
页: [1]
查看完整版本: DEDECMS模板中的数据库语句SQL的调用一