1
2require_once "DB.php"; //PEAR中的数据库处理类
3$dataType = "mysql" ; //数据库类型
4$user = "root"; //用户名
5$pass = "abcd" ; //密码
6$host="202.96.215.200"; //Mysql数据库服务器地址
7$db_name = "test"; //数据库名
8$dsn="$dataType://$user:$pass@$host/$db_name"; //连接数据库的DNS配制
9$db = DB::connect($dsn); //连接数据库
10if (DB::isError($db))
11{
12die ($db->getMessage()); //连接失败,输出出错信息
13}
14
15//下面二个是公共的函数
16/**
17* 读取xsl文档
18*
19* @param String $filename - xsl文件的名称
20* @return string
21*/
22function readXsl($filename)
23{
24if(false==file_exists($filename))
25{
26echo "要读取的文件
<font color="red">$filename</font>
1不存在
2";
3return false ;
4}
5return implode('', file($filename));
6} //end function readXsl
7
8/**
9* 将xml文件或数组变量根据xsl文件转换成HTML内容
10* http://knowsky.com
11* @param array $arydata - 数组变量
12* @param String $xslstring - xsl文档数据
13* @param String $xmlstring - xml文档数据
14*/
15function getHtml($arydata = false, $xslstring = false, $xmlstring = false)
16{
17global $db ; //使用刚才的$db对象
18include_once("XML/sql2xml.php"); //把sql2xml包含进来
19$sql2xmlclass = new xml_sql2xml($db); //将sql2xml实例化
20$sql2xmlclass->setEncoding("GB2312"); //设置数据的转码类型
21if (false == $xmlstring) { // 如果用户传入数组数据,则应用该数组数据到xsl
22//设置生成XML文档数据的节点名称
23$options = array ( tagNameRow => "row" ,
24tagNameResult => "result"
25);
26$sql2xmlclass->SetOptions($options);
27//添加要生成XML文档的数据
28$sql2xmlclass->add($arydata);
29}
30//得到xml文档
31$xmlstring = $sql2xmlclass->getxml();
32//print $xmlstring;
33//下面开始将XML数据文档用XSLT转换成HTML文档
34$arguments = array('/_xml' => $xmlstring,
35'/_xsl' => $xslstring
36);
37$xh = xslt_create();
38
39$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', null, $arguments);
40
41if ($result) {
42return $result;
43xslt_free($xh);
44} else {
45return "转换xml数据到xsl时出错";
46xslt_free($xh);
47}
48} //end function getHtml()
49
50
51//从用户信息表中查询数据的SQL语句
52$sql = "select
53nsrnm, #代码
54qymc, #企业名称
55qydh #电话
56from
57yhxx #用户信息表";
58// 执行SQL语句
59$res = $db->query($sql);
60if ($db->isError($res))
61{
62echo "执行SQL语句时出错";
63}
64while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC))
65{
66$data[] = $row; //将数据放到一个数组中
67}
68//print_r($data);
69//大家可以看到数据已经放到了一个多维的数组中了
70//至此,我们的程序已经基本上完成了,再接下去,我们要定义显示数据的页面
71//打开你的DW 或 FrontPage XP,制作显示的页面,我做了一个,并提供给大家下载
72
73//我们制作的数据显示页面文件为:browesData.html
74/*
75这是我们平时要显示的数据列表界面
<html> <head> <meta content="zh-cn" http-equiv="Content-Language"/> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <title>数据浏览</title> </head> <body> <table border="1" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber1" style="border-collapse: collapse" width="100%"> <tr> <td align="center" bgcolor="#C0C0C0" width="21%">代码</td> <td align="center" bgcolor="#C0C0C0" width="50%">企业名称</td> <td align="center" bgcolor="#C0C0C0" width="29%">电话</td> </tr> <tr> <td width="21%"> </td> <td width="50%"> </td> <td width="29%"> </td> </tr> </table> </body> </html>
1*/
2
3//我把它加工成一个XSLT格式的HTML文档
4/*
5<?xml version="1.0" encoding="gb2312"
<xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform ">
1<xsl:output encoding="GB2312" indent="yes" method="html" version="1.0"></xsl:output>
1<xsl:template match="/">
2<html xmlns=" http://www.w3.org/1999/xhtml ">
3<head>
4<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
5<title>数据浏览</title>
6</meta></head>
7<body>
8<table border="1" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber1" style="border-collapse: collapse" width="100%">
9<tbody>
10<tr>
11<td align="center" bgcolor="#C0C0C0" width="21%">代码</td>
12<td align="center" bgcolor="#C0C0C0" width="50%">企业名称</td>
13<td align="center" bgcolor="#C0C0C0" width="29%">电话</td>
14</tr>
15<xsl:for-each select="root/result/row">
16<tr>
17<td width="21%"> <xsl:value-of select="nsrnm"></xsl:value-of></td>
18<td width="50%"> <xsl:value-of select="qymc"></xsl:value-of></td>
19<td width="29%"> <xsl:value-of select="qydh"></xsl:value-of></td>
20</tr>
21</xsl:for-each>
22</tbody>
23</table>
24</body>
25</html>
26</xsl:template>
*/
$htmlFile="browesData.html" ;
$htmlStr = readXsl($htmlFile); //将xslt格式的HTML文档读取到变量中
echo getHtml($data, $htmlStr) ;
//程序结束
?>