实验7:
重新做实验3,不过XML文档数据从数据库中调用. 用户登录不推荐使用XML.推荐在ASP或其它语言中,做隐式判断. 了解: ASP请点: JSP请点:
这个还是要讲的.便于理解下一个实验.
数据库:
打开Data.mdb数据库.新建二个表. 表名分别为: -------------------------------------------------- post user --------------------------------------------------
post表中: 输入二个字段:分别为: -------------------------------------------------- postID 自动编号 postName 文本 -------------------------------------------------- 在 postID 字段点右键-->主键,保存. 打开post表,在postName字段输入二条数据,数据分别为: -------------------------------------------------- 经理 职员 -------------------------------------------------- 保存.
user表中: 输入四个字段,分别为: -------------------------------------------------- userID 自动编号 username 文本 password 文本 postName 文本 -------------------------------------------------- 在 userID 字段点右键-->主键,保存. 打开user表,分别在username,password,postName字段输入四条数据,数据分别为: -------------------------------------------------- username password postName MChooseFlash01 MChooseHappiness 经理 MChooseFlash02 MChooseHappiness 经理 EChooseFlash01 EChooseHappiness 职员 EChooseFlash02 EChooseHappiness 职员 -------------------------------------------------- 保存.关闭数据库.
数据库到这可以了.下面是ASP:
打开记事本,输入下面的代码,然后保存为 xml-007.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% 'xml-007.asp dim conn,rs,sqlcom,post_arr '设置文档类型. Response.ContentType="text/xml" '输出XML文档. Response.Write("<?xml version='1.0' encoding='gb2312'?>") Response.Write("<!--xml-007.asp-->") Response.Write("<UserDataList>") '创建连接对象. Set conn=Server.CreateObject("Adodb.Connection") '这里用字符串方法连接数据库. '"Provider=Microsoft.Jet.OLEDB.4.0; 这个是数据库驱动. 'Data Source="Server.MapPath("Data.mdb") 数据库文件的相对路径. conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("Data.mdb") '创建记录集对象. Set rs=Server.CreateObject("Adodb.RecordSet") '查询数据库的sql语句. sqlcom="select * from post" '执行sql语句. '1,1 只读. '1,3 可读可写. rs.Open sqlcom,conn,1,1 '重定义数组. 'rs.RecordCount 记录集中总的记录数. Redim post_arr(rs.RecordCount) '用for语句将post表中的数据循环出来. 'Ubound数组的最大上标. for i=1 to Ubound(post_arr) '将post表中的postName字段中的值存入数组post_arr. post_arr(i)=rs("postName") '移到下一条数据. rs.MoveNext Next '这里用了嵌套for语句, '第一个for j是将post_arr数组中的数据读出来.也就是post表中的数据. '第二个for k是将user表中的数据读出来. '用for语句将post_arr数组中的数据循环出来. for j=1 to Ubound(post_arr) '关闭记录集. rs.Close '查询数据库的sql语句. '根据post_arr(j)数组中的值为条件来重复执行sql语句. 'user是SQL中的关键字.要用[]中括号括起来. sqlcom="select * from [user] where post='"&post_arr(j)&"'" '执行sql语句. rs.Open sqlcom,conn,1,1 '输出XML节点. Response.Write("<Post post='"&post_arr(j)&"'>") '用for语句将user表中的数据循环出来. for k=1 to rs.RecordCount '输出XML节点. Response.Write("<UserData username='"&rs("username")&"' password='"&rs("password")&"' />") '移到下一条数据. rs.MoveNext Next '结束Post节点. Response.Write("</Post>") Next '结束UserDataList节点. Response.Write("</UserDataList>") '释放记录信对象. Set rs=nothing '关闭连接. conn.Close '释放连接对象. Set conn=nothing %>
在IIS中浏览xml-007.asp文件.跟实验3中的xml文档大致一样. 打开实验3中的Flash文件,把Flash中的加载xml地址换成:
myxml.load("http://localhost/xml/xml-007.asp?ran="+Math.random(9999));
然后测试影片.效果跟实验3一样.
出处:蓝色理想
责任编辑:moby
上一页 Flash处理外部XML文档数据 [4] 下一页 Flash处理外部XML文档数据 [6]
◎进入论坛Flash专栏版块参加讨论
|