Coldfusion 显示查询结果

本文介绍 ColdFusion 中 CFOUTPUT 标签的使用方法,包括如何动态生成 HTML 页面、显示查询结果、使用分组显示以及利用 CFQUERY 和 CFOUTPUT 的属性等高级技巧。

显示查询结果

一旦你在应用程序文件中建立了一个查询,你就可以在其他CFM文件中引用该查询的结果。查询结果可以用来动态地产生HTML网页。

当你学习使用CFML标签时,要记住你也可以在程序中使用HTML标签和文本。在你使用HTML标签和文本的地方,ColdFusion简单地将标签和文本直接传递给客户流览器。输出查询结果的最灵活的方式是使用CFOUTPUT标签。CFOUTPUT标签可以对某个特定的查询进行输出,也可以输出多个查询的内容。一个CFOUTPUT标签中可以包含:

·纯文本

·HTML标签

·引用查询字段

·引用动态参数,如Form字段

·函数

基本的输出代码有如下的语法:

<CFOUTPUT QUERY=" queryname" MAXROWS= n >

Literal text, HTML tags, and

dynamic field references (e.g., #FullName#)

</CFOUTPUT>

CFOUTPUT中的数据库字段名

有些数据库,如Microsoft Access,允许字段名中带有空格,例如”Region Name.”ColdFusionCFOUTPUT中不支持对这种字段的引用。要和ColdFusion兼容,应避免在表名和字段名中使用空格,这使应用程序对不同的数据库系统具有最大的兼容性。你可以用下划线作分隔符,如”Region_Name”

字段名必须以字母开头,且只能包含字母和数字。你 可以用SQL关键字AS为字段名起一个别名。例如,语句:

SELECT 401K AS FK FROM Employee_Withholding

CFQUERY中可以得到正确处理。

例子:CFOUTPUT

在下面的例子中,我们用CFOUTPUT标签显示查询EmployeeList的查询结果。选择显示的内容是每个员工的姓,名,和电话号码。在变量名中指定查询名是个很好的编程习惯。

下面给出程序的完整代码:

<!--- Query to select customers --->

<CFQUERY NAME="EmployeeList" DATASOURCE="CompanyDB">

SELECT *

FROM Employees

</CFQUERY>

<HTML>

<HEAD>

<TITLE>Employee List</TITLE>

</HEAD>

<BODY>

<H2>Employee List</H2>

<!--- Output section --->

<CFOUTPUT QUERY="EmployeeList">

<HR>

#EmployeeList.FirstName# #EmployeeList.LastName#

(Phone: #EmployeeList.PhoneNumber#) <BR>

</CFOUTPUT>

</BODY>

</HTML>

你可以直接通过URL来申请这个网页,如:

http://myserver/cfdocs/employeelist.cfm

或者通过超链接引用:

<A HREF=”myserver/cfdocs/employeelist.cfm">Employee List</A>

这个例子的输出结果的HTML代码类似于:

<HR>

Deborah Jones (Phone: 612-227-1019) <BR>

<HR>

John Smith (Phone: 507-452-7224) <BR>

<HR>

Frank Wilson (Phone: 612-831-9555) <BR>

嵌套CFOUTPUT和分组

你可以对CFOUTPUT进行嵌套,以实现查询结果的分组显示。分组的实现是通过指定CFOUTPUT标签的GROUP属性,然后将另一个CFOUTPUT嵌人前一个CFOUTPUT。内层CFOUTPUT上面和下面的内容用于给每一组显示一个标题和脚注信息。

例子:分组

下面的代码使用CFOUTPUTGROUP属性,根据”CourseLevel”的值将查询结果分组显示。ORDER BY关键字根据CourseLevel字段的值对查询结果进行排序。CFOUTPUT嵌套没有层数的限制,如果你想使用多级分组,你需要在SQL查询中设置多级排序(例如,”ORDER BY Region,State”)。

<CFQUERY NAME="Courses" DATASOURCE="CourseDB">

SELECT *

FROM CourseList

WHERE Department_ID = ?Form.Department#

ORDER BY CourseLevel

</CFQUERY>

<CFOUTPUT QUERY="Courses" GROUP="CourseLevel">

<H4>#CourseLevel#</H4>

<UL>

<CFOUTPUT>

<LI> #CourseNumber# - #CourseName#

</CFOUTPUT>

</UL>

</CFOUTPUT>

这个例子在流览器中显示的结果为:

Basic

100 - Physiology

Intermediate

510 - Neurobiology

500 - Plant Biology

Advanced

820 - Neurobiology

800 – Microbiology

CFQUERY 属性

执行每个CFQUERY时,有三个属性可以提供记录数信息。

记录数

记录数

描述

RecordCount

查询所返回的记录总数。

CurrentRow

CFOUTPUT正在处理的当前记录。

ColumnList

返回用逗号隔开的查询字段列表。

例子:查询字段

这个例子返回查询CustomerList的记录数和查询字段的列表:

<CFOUTPUT>

The search returned information

on #CustomerList.RecordCount# customers.<BR>

Columns queried were #CustomerList.ColumnList#.

</CFOUTPUT>

要显示每个记录的记录序号,可以用如下语法:

<CFOUTPUT QUERY="CustomerList">

#CurrentRow# - #FirstName# #LastName# <BR>

</CFOUTPUT>

返回记录集的一部分

对于较大的记录集,你也许希望只显示该记录集的一部分。用CFOUTPUT标签的STARTROWMAXROWS属性可以做到这一点。STARTROW指定记录集中第一条要返回的记录。MAXROWS指定了要返回的记录总数。

例子:记录集的一部分

这个例子显示查询EmployeeList的结果记录集中第1020条记录:

<CFOUTPUT QUERY="EmployeeList"

STARTROW="10" MAXROWS="20">

#FirstName# #LastName# #Phone# <BR>

</CFOUTPUT>

CFOUTPUT中使用参数

CFOUTPUT不仅仅用于显示查询到的数据。你也可以用CFOUTPUT显示Form变量,URL变量,CookieClient变量,Server变量,Session变量,Application变量,和CGI环境变量。引用这些变量时要注意使用正确的前缀,这样ColdFusion才能将这些变量与查询结果的字段名区分开。与查询字段一样,变量必须扩在井号中。对查询结果的每条记录,参数值都被显示一次。注意,若要显示井号本身,应用两个连续的井号表示一个井号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值