访问PHP生成的XML
我正在以XML格式从MySQL数据库输出数据,所以我制作了一个php文件,在页面上以XML格式显示数据库中的数据访问PHP生成的XML,php,xml,Php,Xml,我正在以XML格式从MySQL数据库输出数据,所以我制作了一个php文件,在页面上以XML格式显示数据库中的数据 <?php // Return all existing nid in array (Different types of form); function nid(){ $query = "SELECT w.nid FROM webform w"; $result = mysql_query($query); $tabl
<?php
// Return all existing nid in array (Different types of form);
function nid(){
$query = "SELECT w.nid
FROM webform w";
$result = mysql_query($query);
$table = array();
while ($row = mysql_fetch_row($result)){
$table[] = $row[0];
}
return $table;
}
// Return existing rows of corresponding nid
function sid($nid){
$query = "SELECT ws.sid
FROM webform_submissions ws
WHERE ws.nid = $nid";
$result = mysql_query($query);
$table = array();
while ($row = mysql_fetch_row($result)){
$table[] = $row[0];
}
return $table;
}
// Return corresponding components of nid;
function cid($nid){
$query = "SELECT wc.form_key
FROM webform_component wc
WHERE wc.nid = $nid
ORDER BY wc.cid ASC";
$result = mysql_query($query);
$table = array();
while ($row = mysql_fetch_row($result)){
$table[] = $row[0];
}
return $table;
}
// Return values of fields corresponding to nid and sid
function data($nid, $sid){
$query = "SELECT wsd.data
FROM webform_submitted_data wsd
WHERE wsd.nid = $nid AND wsd.sid = $sid
ORDER BY wsd.sid ASC";
$result = mysql_query($query);
$table = array();
while ($row = mysql_fetch_row($result)){
$table[] = $row[0];
}
return $table;
}
// Define Constants
DEFINE("DB_SERVER", "localhost");
DEFINE("DB_USER", "root");
DEFINE("DB_PASS", "");
DEFINE("DB_NAME", "drupal7");
//Establish Connection
mysql_connect(DB_SERVER, DB_USER, DB_PASS)
or die("Unable to connect to MySQL");
//Select Database
mysql_select_db(DB_NAME)
or die("Could not connect to the database");
$xml_output = "<?xml version=\"1.0\" ?>\n";
$xml_output .= "<schema>";
foreach (nid() as $nid){
$xml_output .= "<form fid=\"$nid\">\n";
foreach (sid($nid) as $sid){
$xml_output .= "<row rid=\"$sid\">\n";
for ($i = 0; $i < count(cid($nid)); $i++){
$tag_array = cid($nid);
$value_array = data($nid, $sid);
$tag_row = $tag_array[$i];
$value_row = $value_array[$i];
$xml_output .= "<$tag_row>\n";
$xml_output .= "$value_row\n";
$xml_output .= "</$tag_row>\n";
}
$xml_output .= "</row>\n";
}
$xml_output .= "</form>\n";
}
$xml_output .= "</schema>";
header("Content-type: text/xml");
echo $xml_output;
mysql_close();
?>
但我无法找到访问XML数据或将其作为XML文件下载的方法
下面是我运行它时输出的样子。
提前感谢不要使用字符串来构建xml数据。您应该使用类似SimpleXMLElement的东西 请参见,而不是:
$table[] = $row[0];
尝试使用“阵列推送”功能:
array_push($table,$row[0]);
您看到的结果页面是什么?这不会输出任何xml,这只是返回普通数组。另外,这些函数是不完整的。这些函数很好,我在谷歌上搜索过,有很多方法可以将其保存为xml文件,但我需要根据用户传递给php文件的参数动态生成xml内容。