在DedeCMS中,通过SQL语句调用数据库内容是一种非常灵活的方式。下面将详细介绍如何使用SQL标签来实现单页文档内容的调用,并解决一些常见问题。

 

首先,我们来看一个基本的SQL标签调用示例:


{dede:sql sql="SELECT body FROM `dede_sgpage` where aid = 1" }
[field:body function="htmlspecialchars(cn_substr(@me,130))"/]
{/dede:sql}
    

在这个例子中:

 

  {dede:sql sql="SELECT body FROM `dede_sgpage` where aid = 1" } 这里的 body 是文章内容字段,dede_sgpage 是单页文档存储的数据表(适用于DedeCMS 5.6版本)。aid = 1 表示你要调用的单页文档ID。如果需要调用其他单页文档的内容,只需更改这里的ID即可。

 

  [field:body function="htmlspecialchars(cn_substr(@me,130))"/] 中的 cn_substr(@me,130) 表示截取内容的字数为130个字符。你可以根据需求调整这个数值。

 

然而,你会发现一个问题:HTML标签也被截断了。为了解决这个问题,可以使用以下代码:


{dede:sql sql="SELECT body FROM `dede_sgpage` where aid = 1" }
[field:body function="htmlspecialchars(cn_substr(Html2text(@me),750))"/]
{/dede:sql}
    

在这里,Html2text() 函数用于去除HTML标签,而 cn_substr(str,80) 则用于截取字符串长度。

 

接下来,我们看看如何在首页调用单页文档的内容:

 

  1. 在后台单页文档管理中添加一个单页文档,并编辑其内容。

 

  2. 在需要调用的地方插入以下SQL标签:


{dede:sql sql="select body from dede_sgpage where aid=2"}
[field:body /]
{/dede:sql}
    

这里的 aid=2 表示你创建的单页文档ID。你需要根据实际情况修改这个值。

 

再看一个例子:


{dede:sql sql="select content from dede_arctype where id=2"}
[field:content function=cn_substr(Html2Text(@me),600)/]
{/dede:sql}
    

这里,cn_substr 截取了600个字符(约等于300个汉字),Html2Text 去除了HTML标签。

 

实际上,在DedeCMS系统中,你可以自由地使用SQL语句配合标签进行更多个性化调用。其基本格式如下:


{dede:sql sql="select 字段 From 表名称 where 条件语句"}
[field:字段名/]
{/dede:sql}
    

例如,我们可以构造一个文档列表的调用标签:


{dede:sql sql="select * From dede_archives limit 10"}
·[field:title/]
{/dede:sql}
    

如果你希望链接指向静态地址,可以对 [field:id/] 进行转换。最终代码如下:


{dede:sql sql="SELECT * FROM dede_archives limit 10"}
·[field:title function=cn_substr(@me,30,0)/]
{/dede:sql}
    

以上就是DedeCMS中通过SQL标签调用数据库内容的基本方法和技巧。希望这些内容能帮助到你!