ColdFusion如何从数据库读取信息例子

<CFQUERY NAME= "abc" DATASOURCE= "employee">
SELECT * FROM employee_info
</CFQUERY>

<html>
<head>
<title>职员工资表</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<table width="50%" border="1" bordercolor="#000000">
<tr>
<td>编号</td>
<td>职员姓名</td>
<td>工资</td>
</tr>
<CFOUTPUT QUERY= "abc">
<tr>
<td>#employee_id#</td>
<td>#employee_name#</td>
<td>#employee_salary#</td>
</tr>
</cfoutput>
</table>
</body>
</html>

显示为以下情况

编号职员姓名工资
1王老虎2000
2周星驰2500
3张三丰2300
.........

 

我们来看看代码中用到哪些CFML语言
1.
<CFQUERY NAME= "abc" DATASOURCE= "employee">
SELECT * FROM employee_info
</CFQUERY>

SELECT 列名 FROM 表名
是一个标准的SQL语法,它的意思是从一个数据库表里,把数据抓出来。常用的还有UPDATA更新,INSERT添加,DELETE删除等。不管你用的是何种ODBC数据库,都支持SQL语法。

CFQUERY标记使用了两个属性name和datasource
datasource是想要访问的数据源的名称,上节课我们在COLDFUSION ADMINISTRATOR里定义的ODBC名称。你可能拥有好几个数据库,所以datasource必须要指定一个。
NAME也是必须要有的,相当于在网页中起了一个变量名,暂放Select的结果,以后我们就可以直接调用NAME里的数据了,只需要查询数据库一次。

2.
<CFOUTPUT QUERY= "abc">HTML和CFML语句</cfoutput>
我们又看到CFOUTPUT了,这次有些不同。我们使用QUERY属性指定了CFOUTPUT将输出ABC里的内容。ABC目前存放了SELECT * FROM employee_info的结果,其中包括employee_id,employee_name,employee_salary三个列的数据。在<cfputout query="abc"></cfoutput>之间,我们用#符号,输出了这些结果。并利用了html的tr,td排版了这些内容。是不是很简单,如果SELECT查询结果有10条记录的话,cfoutput就循环执行10次,依次把记录显示出来。

你可以利用SQL语法的特性,安排显示的顺序,如SELECT * FROM employee_info ORDER BY employee_salary DESC ,以工资从高到低的方式排序。或者限定哪些内容可以输出等等。我们可以去参考一些SQL的语法书籍。不同数据库之间的SQL语法,稍有区别。

恩,现在我们为EMPLOYEE数据库里添加一个数据列,名为employee_address并存放一些职员的家庭住址在里面。你也可以直接在这里下载,覆盖先前的数据库文件。

接下来,我们把home.cfm添加一些代码,修改成以下情况。

<CFQUERY NAME= "abc" DATASOURCE= "employee">
SELECT * FROM employee_info
</CFQUERY>

<html>
<head>
<title>职员工资表</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<table width="50%" border="1" bordercolor="#000000">
<tr>
<td>编号</td>
<td>职员姓名</td>
<td>工资</td>
</tr>
<CFOUTPUT QUERY= "abc">
<tr>
<td>#employee_id#</td>
<td><a href="home2.cfm?no=#employee_id#">#employee_name#<a></td>
<td>#employee_salary#</td>
</tr>
</cfoutput>
</table>
</body>
</html>

显示为以下情况

编号职员姓名工资
1王老虎2000
2周星驰2500
3张三丰2300
.........

哦,我们为职员姓名做了一个URL连接到HOME2.CFM上,并传递了一个参数。
home2.cfm?no=1 (#employee_id#,已经被CFOUTPUT转化成值了)
?代表把URL与正在传递的参数隔开。
本例中我们只传递一个参数,如果传递两个以上的话,需要用&号阁开如home2.cfm?no1=xxx&no2=yyy

现在我们来保存HOME2.CFM的文件

<CFQUERY NAME= "abc2" DATASOURCE= "employee">
SELECT * FROM employee_info where employee_id=#url.no#
</CFQUERY>

<html>
<head>
<title>home2.cfm</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<table width="50%" border="1" bordercolor="#000000">
<tr>
<td>编号</td>
<td>职员姓名</td>
<td>工资</td>
<td>家庭住址</td>
</tr>

<CFOUTPUT QUERY= "abc2">
<tr>
<td>#employee_id#</td>
<td>#employee_name#</td>
<td>#employee_salary#</td>
<td>#employee_address#</td>
</tr>
</CFOUTPUT>

</table>
</body>
</html>

显示为下列情况

编号职员姓名工资家庭住址
1王老虎2000陕西老虎村

简单吗?利用SELECT * FROM employee_info where employee_id=#url.no# 中where 来把上一页传递过来的NO参数值与employee_id对比,来决定SELECT的查询条件,最后输出。

转载于:https://www.cnblogs.com/duadu/archive/2006/05/15/6167199.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值