我想了解如何将字符串变量作为xml名称的一部分传递的一些指导。 我根据用户表单选择运行一个mysql查询。然后我为结果创建一个xml。我想传递一个变量作为xml的名称。这可能吗?
这就是我的工作代码:
$query = "SELECT * FROM $table WHERE diam = '$d' AND nom = '$n' AND dim = '$di' AND type = '$t'";
$query_result=mysql_query($query);
$num_rows = mysql_num_rows($query_result);
if($num_rows == 0) {
echo "bummer!";
} else {
#Creates a new DOMDocument
$doc = new DOMDocument("1.0", "utf-8");
#formats correctly the xml document
$doc->formatOutput = true;
#Create Parent Node
$parent_node = $doc->createElement('marker');
$parent_node = $doc->appendChild($parent_node);
#Row manip
while($row = mysql_fetch_assoc($query_result)) {
#adds node for each row
$row_node = $doc->createElement($table);
#appends the new node to the root
$occ = $parent_node->appendChild($row_node);
#add a child node for each field
foreach($row as $fieldname => $fieldvalue) {
$child = $doc->createElement($fieldname);
$child = $occ->appendChild($child);
$value = $doc->createTextNode($fieldvalue);
$value = $child->appendChild($value);
}
}
#saves generated domDocument into a file.
#If echo'ed outputs filezise in bytes
$xml_string = $doc->save('xmlOutput.xml');
}
而不是我要显示的硬编码“xmlOutput”,让我们说diam列名。
答案 0 :(得分:0)
为什么不动态创建输出文件名?像这样......
$ouputFile = $row['diam'] . '.xml';
$xml_string = $doc->save($outputFile);
答案 1 :(得分:0)
在循环中循环结果:
#Row manip
while($row = mysql_fetch_assoc($query_result))
您可以通过执行以下操作访问diam
列的值:
$diam = $row['diam'];
我现在注意到你可能要求:
$filename = $d . '.xml';
$xml_string = $doc->save($filename);
答案 2 :(得分:0)
如果要动态创建文件名,则可以使用$d
变量(与diam列对应)。
$fileName = $d . '.xml';
$xml_string = $doc->save($fileName);