我是靠谱客的博主 跳跃大炮,最近开发中收集的这篇文章主要介绍mysql万能标签调用字段_万能循环(Loop)标签与万能调用(SQL)标签,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天,我们就来深入的真正了解织梦强大的标签内核。

但是,你甭管我说得天花乱坠,涉及到了内核,以外难度非常之大,肯定学不会。其实不然,今天我们要讲的也只是织梦的两个调用标签而已,只是更为灵活,更为强大而已。今天的内容主要是:

万能循环标签(loop)

万能调用标签(SQL)

1)万能循环标签(Loop)

所谓万能循环标签,听这个名字就知道,主要是用于循环的列表标签,他的调用结果通常和(arclist)与(list)这样的列表标签类似。但由于它的名称是万能循环,所以,他的范围更加广泛,广泛到是万能,是任意表而已。

那么我们前面说接触的arclist这些难道不是任意吗?答案是否,他的表仅仅是主表(dede_archives)与附加表(dede_addon***)而已,并且要想索引附加表,我们还需要进行其它的一些设置,获是后台,或是标签参数。我在前面也提到了一句话:

arclist的底层模板请用[field:字段名/]调用,其中字段名的取值范围为主表及相关附加表的所有字段。

说到这里,应该就基本能明白了万能循环标签(loop)与其它的一些列表标签的区别之处了。

那么,loop标签的调用格式是什么样的呢?

你首先得明白,loop标签它也是一个Dede标签之一,所以它的调用方式也只能是我们两种调用标签的其中一个,因为它是一个具有底层模板的循环列表标签。故loop标签的调用基本格式为:

{dede:loop 参数='值' ...}

底层模板(insertext)

{/dede:loop}

相信大家看到这里,就等不及的需要知道它到底有那些参数了。

table='' 表示要索引的表(数据库字典)

row='' 表示要循环的次数

sort='' 表示用于排序的字段

if='' 表示附加的条件(SQL语句中的where后面的内容)

大家看看,loop标签就只有这4个参数。

它的底层字段也是和前面一样用[field:字段名/]表示,但字段名的取值范围为参数table的所有字段。

我们来调用一个实例:

调用网站热门文章10条且浏览量必须大于80个点击:

{dede:loop table="dede_archives" sort="click" row="10" if="click

> 80"}

[field:title/]

{/dede:loop}

解释一下:table="dede_archives" 表示要索引的是主表;sort="click"

表示按照点击数(click)从大到小排序;row="10" 表示调用10条;if="clcik >

80" 表示点击数(click)大于80;

底层模板显示的就是字段title的内容,这个呢,我们在前面说过,主表(dede__archives)的title字段表示的是文章的标题。

好,我们来看看上一段代码在实际运用中的显示效果:

a4c26d1e5885305701be709a3d33442f.png

如果您以为Loop标签只是用来调用主表的最新、热门文章什么的?那你就错了,您主要要理解的是loo标签它可以索引同数据库下的所有的表的循环。比如可以调用整合后的UCHome、Discuz!的数据,甚至可以调用同数据库下的其它CMS数据,比如wordpress、phpcms、帝国CMS等等,只要它满足:①同数据库;②是MySQL;③有数据。那么loop标签几乎都可以为您完成。

但是,loop标签也有其缺陷,比如无法实现按从小到大排序,更无法实现同时关联多表的操作。

在这时,我们另一个比Loop标签更为强大的SQL标签就可以出来替您摆平这件事儿了,不过,前提是:您得先学会它!

2)万能调用标签(SQL)

在正式开始讲解SQL标签之前,我得先告诉大家一个动态网站运行的一个简单原理:

动态网站的核心就是数据库,所谓数据库就是我们存储数据的一个东西,跟仓库差不多

。在前台注册、登陆、评论或后台编辑文档、添加栏目等等这些操作其实就是对数据库的操作,而数据库的操作无外乎就是以下四种:

增加数据(Insert )

修改数据(Update)

查询数据(Select)[我们常说的索引也是这个东西]

删除数据(Delete)

比如,我们后台增加栏目,增加友情链接等等这个操作就属于insert ; 编辑栏目、修改文档等等这类的就属于Update操作;

而文档列表、栏目列表这些我们能够看得见的就是Select后的操作;最后当我们要删除某个文档或是栏目的时候,其实就属于delete的操作了。

同理,我们在调用标签,实际上就是调用数据库内容,最后看见的其实也就是select后显示的东西。

所以,任何动态类型的网站,凡事涉及到调用什么的,这个是肯定没二话可说,就是select ,包括Dede系统的什么arclist

list 等等。

但是,现在仍然不是可以将SQL标签具体内容的时候,而是要先告诉您,SQL查询类(select)语句的一些基本知识:

查询格式为:

SELECT 列名称 FROM 表名称

这里的列名称您可以认为是表的字段,也就是:

SELECT 字段名 FROM 目标表

多个字段,请用半角英文状态的“,”分隔,如果要查询目标表的所有字段,可用通配符“*”表示:

SELECT 字段名1,字段名2,字段名3 FROM 目标表;

SELECT *,字段名3 FROM 目标表;

如果要设置查询条件,可在后面用where子句,比如:

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

由此我们可得出一个结论:所有的标签其实都是通过SQL语句的select操作来实现查询的

比如,文档列表标签(arclist)的中的一个简单调用—— 调用整站热门图文8篇:

折叠XML/HTML

代码复制内容到剪贴板

{dede:arclistrow='8'orderby='click'flag='p'}

{/dede:arclist}

这个调用呢,其实它真正的SQL语句为:

折叠SQL

代码复制内容到剪贴板

select*fromdede_archiveswherearcrank > -1andfind_in_set('p',flag) >0orderbyclickdesclimit 0,8

那么就可以理解为:

织梦标签的各个参数就是SQL语句中的where的各个运算过程,多个的关系是“和”而不是“或”

好了,现在我们来看一下SQL标签的调用格式:

{dede:sql sql="完整的SQL语句"}

底层模板insertext

{/dede:sql}

从这里不难看出,SQL标签其实就一个参数:

sql='' 一条完整的SQL语句

它的底层字段就是sql语句中查询的所有表中的所有字段。

比如:调用推荐文档12篇:

折叠XML/HTML

代码复制内容到剪贴板

{dede:sqlsql="select * from dede_archives where arcrank > -1 and find_in_set('c',flag) >0 order by click desc limit 0,12"}

[field:title/]

{/dede:sql}

这里的SQL语句,大家可以学习相关的SQL语句的相关知识后任意发挥,真正达到万能的作用。

最后

以上就是跳跃大炮为你收集整理的mysql万能标签调用字段_万能循环(Loop)标签与万能调用(SQL)标签的全部内容,希望文章能够帮你解决mysql万能标签调用字段_万能循环(Loop)标签与万能调用(SQL)标签所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部