单条或多条数据查询组件

更新时间:2024-02-29 16:57发布者:名扬银河数字系统类型:后台数据查询组件

名扬银河数字官网系统的后台单条或多条数据查询组件文档:

一、组件名称:单条或多条数据查询组件。

二、组件作用:单条或多条数据查询组件是可用于网站后台管理者自主创建的页面代码中,调用查询网站已发布的数据表数据信息,可以查询单条或多条数据出来应用。可以设定查询条件,可以设定查询字段信息,可以定义组件外部引用单条数据结果。可以指定调用数据记录的条数。可以联合多表查询数据记录。可以指定查询条件、指定排序方式,常用于管理后台信息查看页、信息发布修改页数据初始化绑定。

三、使用范围:仅在所在的页面中有效,在同一页面中可放置多个此组件,不可内嵌重叠使用,需按简单实用有效原则运用。

四、组件写法详解:

1、首先,在使用数据查询组件之前,请确保已设置好数据表配置代码信息(可参见【数据表配置代码】)。另外,对设计数据库表的字段名时,建议每张表中的字段名都有与其他表不同的前缀区分,可以为开发避免很多不必要的烦恼,让人一看便知是来自那张表的字段名信息,尤其是联合查询时非常实用。

2、数据查询组件使用[data=...]...[/data]方式进行定义。完整写法中,[data=...]...[/data]内包括的主要组成部分有四个:

(1).查询定义区域[0]...[/0]。必须定义的区域。

(2).数据输出区域[row]...[/row]。当单条查询并且使用了外部调用out=方式时,不需要时,此区域可去掉。

(3).定义当有数据时可显的区域[hasdata]...[/hasdata]。不需要时,此区域可去掉。

(4).定义当无数据时可显的区域[nodata]...[/nodata]。不需要时,此区域可去掉。

3、[0]...[/0]内包括的主要组成部分有七个:

(1).用于当需要在本站中扩展调用其他MS SQL Server数据库的数据时,可定义调用非本站的数据库链接的对接名称[dbn=...]。不需要时,此部分可去掉。

(2).定义外部调用名[out=...]。不需要时,此部分可去掉。

(3).定义查询条数[num=...]。若去掉此部分,默认为1。

(4).定义一个联合查询区域[inneron=...]...[/inneron]。不需要时,此区域可去掉。

(5).定义要查询的字段[get]...[/get]。必须定义的区域。

(6).定义查询条件区域[where]...[/where]。若无条件,可去掉此区域。

(7).定义排序方式区域[orderby]...[/orderby]。不需要时,此部分可去掉。

4、[get]...[/get]内包括的主要组成部分有一个:

(1).[col=字段名1]。定义要查询的字段名列表,每个字段信息都以这种方式定义。

5、[where]...[/where]内包括的主要组成部分有一个:

(1).[col=字段名1]...[/col]。定义用于查询条件的字段信息,每个查询条件的字段信息都以这种方式定义。

(1.1).查询条件字段信息[col=字段名1]...[/col]内包括的主要组成部分有三个:

(1.1.1).[way]比较方式[/way]。本字段值与后面的条件值的比较方式:d表示大于,x表示小于,=表示等于,d=表示大等于,x=表示小等于,like表示模糊匹配。

(1.1.2).[val]比较的条件值[/val]。支持固定值或接收变量值(由[req=...]定义的),可以是字符串、数字等。

(1.1.3).[rel]该字段与前面字段的关系[rel]。并且时用and,或时用or。如果忽略此项,默认以and方式处理。如果是第一个查询条件字段信息可直接忽略此项。

6、[orderby]...[/orderby]内包括的主要组成部分有一个:

(1).[col=字段名1=排序方式] 。定义排序字段信息,每个排序字段信息都以这种方式定义。排序方式:asc表示升序,desc表示降序。

7、单条或多条数据查询组件的简单实例-查询组件的内部调用数据结果方式:

(1).实例名称:网站后台的系统起始页中呈现最新发布的三篇文章信息。

(2).实例说明:实例中使用了内部默认调用数据结果的方式,使用[row]...[/row]区域的方式处理页面显示的内容。

(3).实例解释:在系统起始页,对文章信息模块按文章的编号倒序,也就是调用最新发布的文章,查询获取三条文章、未被删除的news_isdel=0的,包括id编号、标题。

(4).组件实例的写法:

[data=news_list]

[0]

[num=3]

[get]

[col=news_title] [col=news_id]

[/get]

[where]

[col=news_isdel][way]=[/way][val]0[/val][/col]

[/where]

[orderby]

[col=news_id=desc]

[/orderby]

[/0]

[row]

<li><a href="/news/$news_id$.html" title="$news_title$" target="_blank">$news_title$</a></li>

[/row]

[/data]

(5).组件使用实例的图解步骤共二步:

第一步、查询组件的写法:

单条或多条数据查询组件的代码写法的简单实例

第二步、查询组件的内部调用方式,使用[row]...[/row]区域调用数据信息到页面上显示的效果:

查询组件的内部调用方式,使用区域调用数据信息到页面上显示的效果

8、单条或多条数据查询组件的简单实例-查询组件的外部调用数据结果方式:

实例名称:管理后台文章发布页处理修改文章时,使用查询组件初始化数据内容绑定处理。

实例说明:实例中使用了外部调用数据结果的方式,此方式常用于信息详情数据内容的修改操作时的初始化绑定。文章发布页修改初始化内容主要处理了所属分类、文章标题、封面图片、文章摘要、内容详情信息。

使用数据查询组件的写法:实例从文章管理列表页点击进入文章发布页进行修改,使用了页面超链接传值参数eid到文章发布页,在文章发布页中定义获取此eid参数信息,使用[req=eid=int]方式在页面中获取,然后使用$req.eid$在查询组件中使用eid值。关于[req=...]的用法,请详见【后台页面参数传递文档】。

实例解释:在后台文章发布页,按文章信息编号来查询获取一条未被删除的文章信息的分类、标题、封面图、摘要、详情。文章信息的编号字段news_id=页面中获取到的超链接参数eid的传值。实例中还通过单向if语句判断当前是否是修改文章操作,如果$req.eid$大于0则表示当前为修改文章操作,则需要查询所修改的文章数据出来初始化绑定呈现。

[req=eid=int]

....

[if={$req.eid$}d{0}=int]

[data=news_list]

[0]

[out=newsinfo]

[num=1]

[get]

[col=news_title][col=news_typeid][col=news_flag][col=news_con][col=news_des][col=news_faceurl]

[/get]

[where]

[col=news_id][way]=[/way][val]$req.eid$[/val][/col]

[col=news_isdel][way]=[/way][val]0[/val][/col]

[/where]

[/0]

[/data]

[/if]

在页面的其他地方使用组件的外部调用名称newsinfo,比如:调用文章信息标题用$newsinfo.news_title$,封面图片url用$newsinfo.news_faceurl$。

组件使用实例的图解步骤共四步:

第一步、查询组件的写法:

在页面的其他地方使用组件的外部调用名称newsinfo

第二步、使用查询组件的外部调用方式,调用数据信息到页面代码中初始化绑定的操作:发布型组件中初始化绑定需要使用$bind.data查询组件的外部调用名.字段名$方式处理,其他的直接使用$data查询组件的外部调用名.字段名$方式处理。

使用查询组件的外部调用方式,调用数据信息到页面代码中初始化绑定的操作

第三步、文章发布页结合查询组件,进行的数据初始化绑定后的页面显示处理效果:

最终查询组件的页面显示处理效果

9、查询组件写法分解:

[data=表名称] -----指定需要查询的数据表名称,表名、别名只支持英文字母 数字 下划线,当联合查询时须指定表别名:[data=表名称=表别名]

[0]-----查询定义区域开始, [0]....[/0]为查询定义区域

[dbn=设定一个非本站的数据库链接的对接名称]-----定义可以调用非本站的数据库链接的对接名称,此名称只支持英文字母、数字、下划线;默认不使用此块定义,若有需要使用查询组件调用其他MS SQL Server 数据库数据的,可定义此块。定义此块须知:请在服务器空间站点根目录下的Web.config中,增加需要被调用的数据库的链接信息配置节点,该配置节点的名称将作为对接名称使用。具体操作可参考第五部分的内容。

[out=外部调用名]-----用于当需要在[data..]...[/data]区域外使用结果数据时定义,外部只能获取第一条数据,获取字段值方式为:$外部调用名.字段名$,若用外部方式时,内部的[row]..[/row]区域可忽略、去掉。若不需要外部使用,此部分可去掉

[num=查询条数]-----定义获取的记录数量,如果去掉此部分,默认为1条

[inneron=其他表名称=其他表别名] -----开始一个关联表的定义区域,定义联合其他表查询时,[data=主表名称=主表别名]主表和联合表都须定义别名使用。若不联合查询的,此区域可去掉

[jway=关联方式]-------定义关联的方式,有三种值:inner、left、right,主表与关联表的字段关系只支持值相等=的条件

[col=主表别名#主表字段名1]-------开始定义一个关联查询表之间的字段关联条件信息,多个字段时,分别使用多个[col...]..[/col]处理,举例:资讯表类型字段关联资讯类型表的类型id字段的语句为 [col=news_list#news_typeid][rel=news_type_list#type_id][/col]

[rel=关联表别名#关联表的字段名1]-------定义主表字段与所关联表的字段信息

[/col]-------结束关联一个字段的关系定义

[col=主表别名#主表字段名2]-------开始定义另一个主表字段,与关联表的字段信息的关系

[rel=关联表别名#关联表的字段名2]-------定义主表字段与所关联表的字段信息

[/col]-------结束关联一个字段的关系定义

...

[/inneron]-------结束一个关联表的定义区域

[get]-------开始定义需要查询的字段名列表区域,其中每个字段信息使用[col=字段名]进行定义,如果需要使用字段别名时,使用方式为:[col=字段名=字段别名],如果有表别名时,需要指定区分表的字段的方式:[col=表名称或表别名#字段名称],[col=表名称或表别名#字段名称=字段别名],字段名只支持英文字母 数字 下划线。比如:[get][col=new_id][col=news_title=title][col=news#news_addtime][/get]

[col=字段名1] [col=字段名2] ...-------定义需要查询的字段名列表

[/get]-------结束定义需要查询的字段名列表区域

[where]-------开始where区域,用于定义本次查询的字段条件信息,每个字段条件信息的定义方式使用[col=字段名]...[/col]。

[col=字段名1]-------开始一个查询条件的字段信息定义

[way]比较方式[/way]-------字段值与后面的条件值的比较方式,有6种方式:d表示大于,x表示小于,=表示等于,d=表示大等于,x=表示小等于,like表示模糊匹配

[val]比较的条件值[/val]-------支持具体的固定值或接收变量值(由[req=...]定义的),可以是字符串、数字等

[/col]-------结束一个查询条件的字段信息定义

[col=字段名2]-------开始一个查询条件的字段信息定义

[way]比较方式[/way]-------字段值与后面的条件值的比较方式,有6种方式:d表示大于,x表示小于,=表示等于,d=表示大等于,x=表示小等于,like表示模糊匹配

[val]比较的条件值[/val]-------支持具体的固定值或接收变量值(由[req=...]定义的),可以是字符串、数字等

[rel]该字段与前面字段的关系:并且时用and,或时用or[rel]-------定义非第一个查询条件字段的附加关系,关系方式有2种:and表示并且,or表示或

[/col]-------结束一个查询条件的字段信息定义

...

[/where]-------结束where区域的定义

[orderby] -------开始定义排序字段信息

[col=字段名1=排序方式] [col=字段名2=排序方式]... -------定义各排序字段信息,排序方式共2种:asc表示升序,desc表示降序。

[/orderby] -------结束定义排序字段信息

[/0] -----查询定义区域结束

[row] [/row] -----在数据查询组件[data]...[/data]内,用户可在此区域内处理获取查询到的数据结果,使用$字段名$方式得到指定字段数据。当需要定义[data...]的数据结果使用out=方式,在[data...]的外部使用时(若多条的,外部只能得到第一条数据),此部分可去掉!注意:针对某些字段的值比较特殊,需要对其处理换行的多文本内容,或多图,或图文并茂型的数据内容时,请使用[show=...]..[/show]方式处理显示内容(处理方式请见第五点内容)

[hasdata][/hasdata] -----有数据时显示的信息,可使用html标签等内容。若不需要此部分,可去掉

[nodata][/nodata]-----无数据时显示的信息,可使用html标签等内容。若不需要此部分,可去掉

[/data]-----查询定义区域结束

五、使用查询定义区域[0]...[/0]中的[dbn=...]块,实现调用非本站的MS SQL Server 数据库数据的功能:

1、首先请配置好需要被调用的非本站的数据库的链接信息节点,请在服务器空间站点根目录下的Web.config中,增加一个数据库的链接信息配置节点,注意数据库链接信息的节点名称只支持英文字母、数字、下划线。所设定的数据库链接信息的节点名称就是[dbn=...]的对接名称。配置节点的位置在<configuration><connectionStrings>

<add name="此处设定一个数据库链接信息的节点名称" connectionString="此处设定数据库的链接信息" providerName="System.Data.SqlClient"/>

</connectionStrings>...</configuration>

2、其次请和本站数据表一样,还需要在网站系统管理后台的【数据表配置代码】,加入需要调用的数据库的数据表定义信息,配置完成后就可以在网站前后台的页面代码中应用了。关于数据表配置代码操作详情,请详见【数据表配置代码文档】。

3、配置一个非本站的数据库链接信息的节点实例:

<add name="com_product_sale_info" connectionString="server=.;database=db_temp_test_product;uid=user_temp;pwd=P_t???!!!!--_??l---??LL!!@Lk--_??llK#@K" providerName="System.Data.SqlClient"/>

然后,请在网站系统管理后台【数据表配置代码】中配置一下需要被调用数据库的数据表定义信息,定义完成后就可以如同使用本站数据库数据表一样操作了:

a、数据表配置定义,比如:[table=product_sale_list]...[/table]。

b、数据查询组件应用[dbn=...]的定义,比如:

[data=product_sale_list]

[0]

[dbn=com_product_sale_info]

[out=pro]

[num=1]

[get]...[/get]

[where]...[/where]

...

[/0]

...

[/data]

六、数据查询组件所获取到的数据记录里,出现日期时间类型的字段数据的处理方式说明:

调用显示时间类型的字段值时,可用字段信息的时间格式:

$字段名.todate(yyyy-MM-dd HH:mm:ss)$。该方式的显示结果如:2020-09-22 15:39:55。

yyyy表示年份。MM表示月份。dd表示具体某天号数。HH表示24小时制的时间小时部分。mm表示时间分钟部分。ss表示时间秒数部分。

常用时间格式如:yyyy-MM-dd,yyyy.MM.dd,yyyy-MM-dd HH:mm。

七、针对单条或多条数据查询组件使用过程中,会遇到数据表中的多本文字段内容需要换行处理时,或者数据表定义时选择为“信息的详情内容”的字段的数据,或者数据表定义时选择为“多图片发布组件所对应”的字段的数据,或者数据表定义时选择为“图文并茂发布组件所对应”的字段的数据,这些数据在前台页面上的内容显示都需要使用[show=...]....[show]方式处理效果。处理方式说明:

[show=$调用的字段名信息$] ------可使用直接字段数据信息或外部调用字段数据信息的方式,比如:在[data..]..[/data]组件的外部使用[out=news]方式调用资讯详情内容的字段值[show=$news.news_content$],在[data..]..[/data]组件内部的[row]..[/row]区域内使用[show=$news_content$]。

[seoln] ------加入此标识,表示使用seo方式操作[h2],[h3],[h4]行内容,若存在[seoln]时,字段数据内容中文本段落行的[h2]等相关行会独立呈现,不使用提供的嵌套html代码包裹它。

[text]<p>$n$</p>[/text] -----文本信息处理,若存在多个段落时,每个段落使用<p></p>进行嵌套方式,此处$n$表示每个文本段落的内容。

[pic]<p><img src="$url$" /></p>[/pic]------图片信息处理,每张图片都使用<p></p>嵌套方式显示,$url$表示每张图片的url地址,$name$表示每张图片的名称,$link$表示每张图片可打开的链接信息。

[/show] -----显示处理方式结束闭合。

补充文本段落的处理方式,其中的[text]...[/text],还有两种方式:

1、[text][ln]<p>$n$</p>[/ln][/text] -----文本信息处理方式,加入了[ln]...[/ln]换行处理,此时$n$表示任何段落的每行,都使用<p></p>进行嵌套显示,$n$表示每行的内容。非常推荐使用此方式。

2、[text][ln=br]<p>$n$</p>[/ln][/text] ------文本信息处理,表示若存在多个段落时,每个段落使用的<p></p>嵌套方式,段落中的换行使用<br/>方式,$n$表示每行的内容。比如网站前台新闻资讯详情页中处理资讯详情字段数据的实例:

使用[show...]...[/show]的实例代码为:

[show=$news.news_con$]

[seoln]

[text][ln]<p>$n$</p>[/ln][/text]

[pic]<p><img src="$url$" alt="$name$"/></p>[/pic]

[/show]

八、更多数据查询组件的用法实战操作,请下载名扬银河数字官网系统后获得更好的实践代码与文档的查阅体验,下载网站系统请【名扬银行数字官网系统的最新版本