万卷书>>电脑书籍>>网页制作>>网页制作软件使用>>ColdFusion 初级教程

WANJUANSHU.COM

显示查询结果

一旦你在应用程序文件中建立了一个查询,你就可以在其他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.”。ColdFusion在CFOUTPUT中不支持对这种字段的引用。要和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上面和下面的内容用于给每一组显示一个标题和脚注信息。


 

例子:分组


 

下面的代码使用CFOUTPUT的GROUP属性,根据”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标签的STARTROW和MAXROWS属性可以做到这一点。STARTROW指定记录集中第一条要返回的记录。MAXROWS指定了要返回的记录总数。


 

例子:记录集的一部分


 

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


 

<CFOUTPUT QUERY="EmployeeList"


 

STARTROW="10" MAXROWS="20">


 

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


 

</CFOUTPUT>


 

在CFOUTPUT中使用参数


 

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

 
上一页 WanJuanShu.COM 下一页
WANJUANSHU.COM 万卷书